Zápis některých aspektů objektově orientovaného programování v PHP
má poměrně velký WTF faktor a nejednou jsem narazil na pokročilého
programátora, jak tápal, proč jeho kód způsobuje parse
error či nějakou jinou chybu. Rozhodl jsem se proto oprášit můj
blog a přehledně na jednom místě shrnout OOP syntax v PHP.
U jednotlivých popisů budu velice stručný, článek si neklade za cíl
vysvětlit OOP,
zaměřuje se pouze na způsob zápisu.
K hezkému objektovému kódu patří i jeho jednotná podoba, doporučuji
k nastudování Nette Coding
Standard.
Třídy
Definice nové třídy
class A {
}
abstract class A {
}
final class A {
}
class B extends A {
}
Nette Framework má mnoho předností.
Hlavní z nich je rychlá a efektivní tvorba kvalitních webových
aplikací.
Už dávno jsou ty doby, kdy jsem v PHP půl odpoledne patlal obstojný
formulář s kontrolou vyplněných textových polí, validitou e-mailové
adresy a jakž-takž ucházejícím vzhledem odesílané zprávy.
V Nette je tvorba dokonalého a
neprůstřelného kontaktního formuláře práce na 10 minut.
Framework totiž obsahuje třídu jak pro práci s formuláři, tak třídu pro
odeslání e-mailu (včetně podpory tvorby zprávy šablonovým způsobem).
XML deklarace by měla být součástí validní XHTML
stránky, i když není povinná.
Problém nastává v momentě, kdy tuto deklaraci chceme použít na
začátku PHP skriptu. Jak deklarace XML, tak PHP kód používají < >
závorky. PHP se tady snaží překousat kód deklarace, ale neúspěšně –
skript se zastaví na první možné řádce.
Jak toto omezení obejít a mít XML deklaraci v libovolném PHP skriptu?
Stačí použít echo a negovat uvozovky, které XML deklarace obsahuje:
echo '<?xml version="1.0" encoding="utf-8"?>';
Jelikož tento web pohání můj vlastní systém, implementuji do něj
postupně funkce tehdy, až když je potřebuji. Když roboti po pár
měsících od startu přišli na to, jak přidávat komentáře pod články a
ty se začaly objevovat opravdu ve velkém množství, situaci bylo potřeba
vyřešit.
Nechtěl jsem uživatele obtěžovat s opisováním znaků z nečitelných
obrázků, ani s matematikou. Problém za mě vyřešil Jakub Vrána.
Nutno říct, že jeho způsob eliminace spamů u mě funguje na sto procent,
od jeho nasazení mi nepřišel do komentářů jediný nevyžádaný
příspěvek (od automatu).
A jak na to? Předpokládáme, že botům stále nebyl dán
do vínku JavaScript. Uživateli tedy položíme nějakou otázku či zadáme
úkol vyplnit dodatečné pole formuláře, JavaScriptem toto pole skryjeme a
požadovanou hodnotou vyplníme. Uživatelé bez JavaScriptu tedy nejsou nijak
omezeni, pouze musí vyplnit o jednu hodnotu navíc. Ve zpracovávacím skriptu
pak nepokračujeme, pokud v dané proměnné není požadovaná hodnota.
Praktický a funkční zdroják pro generování náhledů z velkých
obrázků. Hodí se jak pro galerie, tak i pro klasické prezentace všeho
druhu. Odzkoušeno, úspěšně aplikováno :)
Praktické pro galerie a i klasické webové prezentace všeho druhu. Tento
kód se hodí také v případě, že pouze nechcete nechat formátování
obrázků na uživatelovi. Riskovat, že uploaduje některý obrázek větší,
než má být a celý design se rozhodí, není nejlepší řešení. Stačí
při nahazování zkontrolovat jejich rozměry a případně je zmenšit touto
funkcí.
E-mailové adresy na webech jsou vystaveny útokům spamrobotů, kteří je
indexují a ukládají do své databáze. Stačí mít tedy svůj e-mail 1× na
nějakém zaindexovaném webu a už to jede. Obvyklé obrany proti těmto
způsobům získávání adres pro spam jsou pro uživatele nepřívětivé.
V případě, že je zavináč nahrazen nějakým jiným znakem, nemusí méně
zkušeného návštěvníka napadnout při psaní e-mailu ten znak správně
nahradit. A v případě adres zobrazených jako obrázky ji musí uživatel
přepisovat celou. Navíc už boti disponují kvalitním OCR, na technologii
CAPTCHA se nedá
spolehnout.
Martin Jurča mi
poradil ochranu, kterou sám ke své plné spokojenosti používá. Ta sází na
skutečnost, že boti neumí JavaScript. Pomocí JS se zapíše odkaz
v normálním tvaru a objeví se na stránce tak, jak ho známe. Uživatelé
nejsou omezeni a boti jsou (aspoň na nějakou dobu) eliminování.
Info
21 let
student ČVUT FEL
& webový vývojář
počítače, hry, DJing
Kanál není aktuálně k dispozici.
Anketa
Používáte Nette Framework?
Ano, je to skvělý nástroj.
40%
Dal jsem mu kdysi šanci, ale neoslovil mě.
15%
Používám radši Zend.
15%
Co to je?
16%
Nejsem webový vývojář.
15%
Rubriky
Top 5 za únor 2009
- 1. The Doppler Effect – Beauty Hides In The Deep (The Blizzard Remix)
- 2. Nifra – Complicated Life
- 3. Will Holland – Tears In The Rain
- 4. Myon & Shane 54 ft. Carrie Skipper – Vampire
- 5. Rank1 – L.E.D. There Be Light
Winamp mi právě hraje
- 01d C – Systems – Supersystem 009 on AH.FM 08–08–2010 [REPLAY]
- 01d Next on Air: Coll & Tolland – VERTIGO 001 on AH.FM
- 01d C – Systems – Supersystem 009 on AH.FM 08–08–2010 [REPLAY]
- 01d paul pearson – Digital Society Sessions 021 on AH.FM 19–08–2010 [REPLAY]
- 01d paul pearson – Digital Society Sessions 021 on AH.FM 19–08–2010 [REPLAY]