Co je nového v PHP 5 (díl 1/5)
PHP 5 přináší spoustu výborných změn. Jedná se hlavně o změnu jeho objektové koncepce. Většině "taky-programátorů" to bude jedno, nevyužívají ani potenciálu PHP 4, nicméně, lidem jako já, co znají výborně C++, sedne PHP 5 mnohem lépe. Jeho implementace objektů se totiž zjevně nechala inspirovat C++ a Javou.
Třída bude mít konsktruktory (což má nakonec částečně již teď) a desktruktory:
class _metodaA { var $x; function __construct($x) { $this->x = $x; } function display() { print($this->x); } function __destruct() { print("bye bye"); } } $o1 = new _metodaA(4); $o1->display();
Třída bude mít protected (je k nim umožněn přístup i přímým potomkům) a private (přístup k nim mají jen třídy samotné, v nichž jsou definovány) proměnné a rovněž metody. Dosavadní kód (PHP 4) je považován, jako by všechny metody byly typu public.
class Foo { private function aPrivateMethod() { echo "Foo::aPrivateMethod() called\n"; } protected function aProtectedMethod() { echo "Foo::aProtectedMethod() called\n"; $this->aPrivateMethod(); } } class Bar extends Foo { public function aPublicMethod() { echo "Bar::aPublicMethod() called\n"; $this->aProtectedMethod(); } } $o = new Bar; $o->aPublicMethod();
Spam s AdSense
Před pár dny jsem psal o výběru loga pro systém BLOG:CMS. Za včerejšek mi přišlo poněkud více spamů než obvykle, ale kromě umírajících nigérijců, tam bylo i hodně nabídek na zaručeně kvalitní logo v té nejlepší kvalitě za výborné ceny.
Jinak řečeno, spammeři sledují co děláte, skenují Vaše stránky, a podle toho, co píšete, Vám zasílají obtěžující nabídky. Ještě, že češtinu neumí (zatím) moc analyzovat. Tedy, nevyplatí se jim to.
Mimochodem, moje Opera 7.51 s M2 email klientem a učícím se algoritmem pro rozpoznávání spamu má účinnost kolem 99.9% :) Pokud bych Vám náhodou neodpovídal dlouho na nějaký email, bohužel, jste to 0.1%. Omlouvám se ;)
Jak na CVS na sourceforge.net?
CVS (The Concurrent Versioning System) je jedinečný nástroj pro správu verzí pro Vaše projekty. A pokud je Váš projekt Open Source, v licenci (například) GNU GPL, máte jedinečnou možnost jej hostovat na sourceforge.net, včetně podpory pro CVS, webhosting, file releases, mirroring na řadě serverů po celém světě, a řadu dalších věcí.
Do CVS repository se můžete napojit i Vy, anonymně, pochopitelně pouze pro čtení.
Jak tedy na nejaktuálnější kódy BLOG:CMS?
Nejdříve si stáhněte aplikaci WinCVS ze sourceforge.net. Hodit se Vám bude i Python, jako shell pro CVS. Pokud by jste chtěli do CVS i zapisovat, budete potřebovat pochopitelně i PuTTY (Telnet / SSH klient), ve spolupráci s Pagent pro pohodlnější (automatickou) autorizaci.
Ve WinCVS následně nastavte v sekci Remote / Checkout Module:
CVSROOT data:
Authetication: pserver
path: /cvsroot/blogcms
host address: cvs.sourceforge.net
username: anonymous
CVSROOT: anonymous@cvs.sourceforge.net:/cvsroot/blogcms
Checkout settings:
Module name: blogcms4
Local folder: (třeba) C:\www\blogcms4
Poté, co si poprvé stáhnete kopii BLOG:CMS, můžete Checkout pochopitelně používat již jen pro download změněných souborů.
Validní vložení Flashe do XHTML 1.0 STRICT
<object type="application/x-shockwave-flash" data="animace.swf" width="600" height="200" > <param name="movie" value="animace.swf" /> <param name="quality" value="high" /> <param name="swliveconnect" value="true" /> </object>
Není ani problém zobrazit pro lidi co nemají Flash třeba zástupnou grafiku (nutno dát před uzavítající </object> tag):
<img src='flash.jpg' alt='nemas flash' />
BLOG:CMS registrován na sourceforge.net
Včera večer jsem podal žádost o registraci a hostování projektu BLOG:CMS na sourceforge.net, a dnes byla schválena. Znamená to skvělou dostupnost, integrované CVS, možnost práce více vývojářů, i lepší propagaci projektu. Pokud se někdo chce přidat jako vývojář BLOG:CMS, budu moc rád. Projekt bude od zítřka členěn do třech sekcí, BLOG:CMS CORE, BLOG:CMS PLUGINS, a BLOG:CMS SKINS.
phpBB - nějak se nám to rozmáhá
Nějak se nám tu rozmáhají instalace phpBB fór. No tak dobře... Mám zde ale pár postřehů, jak je učinit více užitečnými. Jedná se konkrétně o fórum www.winarna.tk o Windows obecně, a pak blogforum.rogner.cz o blogování jako takovém.
V čem je jejich problém?
- Chybný koncept blogforum.rogner.cz: fóra jsou členěna dle blogovacích systémů. To je ale blbost. Kdo je klientem tohoto fóra? Člověk co neví, co si má vybrat. Ten by ocenil jasné linky na veškeré systémy, jejich krátké recenze, a hlavně členění dle funkcí blogovacích systémů, ne dle jejich jmen. Každý blogovací systém, větší, má fórum svoje, duplikovat je zde je hloupost.
- Chybný koncept winarna.tk: fóra zde jsou členěna do příliš mnoho sekcí. Je jich tam asi 35. V tom se nedá vyznat. Maximum je tak 10, a to ještě rozděleno do 2-3 kategorií. Pokud se v něčem nedá vyznat, nikdo to nečte, nikdo se v tom nevyzná, jde pryč. A opět chybí obsah. Založit fórum a spoléhat, že tam někdo něco napíše je hloupost.
- Obě fóra používají nedoladěnou instalaci. Podívejte se do zdrojáků, CSS styly tam jsou uvedené přímo v HTML! To je šílená neefektivita. Dělat se to má lépe, tedy styly linkovat. Jak to dělám já na forum.blogcms.com.
- Šílené barvy. Blogfórum má šedé pozadí a na něm oranžové písmo. Nic proti vkusu, někomu se to líbí, nicméně toto se nedá číst. A to už JE problém. Winarna.tk má zase styl "subSilver", který mají stovky tisíc webů. Viděl jsem jej mockrát, a nelíbí se mi.
- Neomezená šířka stylů. Pokud má někdo rozlišení 1280x1024, či 1600x1200, tak je stránka obou fór bez použití max-width prakticky nečitelná. Doplňte ji tam!
- Winarna.tk má šílené logo. Zubatá žlutá a černá mi ze všeho nejvíce připomíná web dělaný před 8-10 lety, takové ty nápisy "In Construction", žluto-černé, a u toho kopající dělník jako animovaný GIF. Opět, vkus je osobní věc, ale toto je odpuzující! To už je lepší žádné logo, než toto. Co mě odpuzuje, to nečtu a nevracím se tam.
- Zapněte si GZip. Ušetříte 80% pásma. Winarna.tk jej používá, Blogforum.rogner.cz nikoliv (viz http://www.desilva.biz/gzip-test.php).
Uvedená kritika je určena k tomu, aby Jirka a Roman na těch fórech zapracovali. Ona MOHOU mít smysl. Ale takto ne. Něco jen tak (ještě blbě) nainstalovat a doufat, že ostatní budou pracovat... ;) Chce to více pracovat!
BLOG:CMS - projekt a web spuštěn
Více na http://blogcms.com/.
Jak se naučit profesionálně programovat?
Po napsání článku o mých zkušenostech s programováním jsem emailem, či na ICQ, dostal již desítky dotazů na to, jak vlastně začít.
Vzhledem k tomu, že vůči těm klukům, co se začínají učit programovat dnes, mám více než dvojnásobný věkový rozdíl (je mi 31 let), a tím i obrovské zkušenosti navíc, cítím se cosi jako radící otec, ale.. budiž :)
Takže, pokud chcete vědět, jak se naučit poněkud více než následující příkládek, čtěte dál!
#include <iostream> using namespace std; int main(int argc, char *argv[]) { string jmeno; cout << "Napis sve jmeno : "; cin >> jmeno; cout << "Jmenujes se " << jmeno; system("PAUSE"); return 0; }
Autentický záznam jedné relace na ICQ
iTwisteR: ahoj.. hele kde muzu editovat tu hlavni stranku ? |
iTwisteR: chcu si tam dat kalendar ale prej musim vlozit nejaky tag na hlavni page ale nevim kde je |
iTwisteR: v dokumentaci neni navod |
rADo: v dokumentaci je navod, ale anglicky je tam 400kB návodu.. |
iTwisteR: neni |
iTwisteR: snad sem to uz hledal.. a ja ten kalendar chci misto toho MOST KARMA |
rADo: http://hulan.cz/forum/ . Dekuji. |
iTwisteR: mi nemuzes rict tady : |
iTwisteR: nebo to nevis ? |
rADo: nedelam podporu na ICQ pro nikoho... na Nucleusu bezi tisice blogu. PS: pokud jsem to naprogramoval, tak to asi vím... A v EN dokumentaci to OPRAVDU je. Je to i na foru. Staci umet anglicky a hledat.. |
iTwisteR: tak mi najdi to v tech dokumentech ... nebo mi hod link na forum kde to presne je protoze ja to tu nevidim.. |
iTwisteR: mi staci jenom soubor kde to je vse napsane a kde to muzu editovat.. abych tam pridal kalendar.. musim to napsat do zdroje nebo staci pres admina ? |
rADo: jsi normalni clovece? ja pro tebe MUSIM neco delat? To ti nestaci, ze ti davam zdarma STOVKY A STOVKY hodin moji prace??? zacni se trosku ucit sam... |
rADo: a kdyz na to nemas, pouzivej neco jednodussiho, pro lamy, neco jineho nez Nucleus XE |
Jediné co toho človíčka mírně ospravedlňuje je fakt, že je mu dle ICQ (207346374) 14 let. Tedy.. puberta.
.htaccess a FilesMatch pro SEO URL
Za pomocí .htaccess a FilesMatch se dají velice rychle a efektivně vytvořit SEO URL. Jak takový zápis vypadá pro PHP MIME typ? Například takto:
<FilesMatch "^extra$"> ForceType application/x-httpd-php </FilesMatch>
Za pomocí proměnné $_SERVER['PATH_INFO'] se dostaneme na URL, které následuje za textem ´/extra/'. Jak s tím můžeme dále pracovat? Nejjednodušší je použít explode():
$data = explode("/",serverVar('PATH_INFO')); $path = $data[1];
S tímto se již dále dá dobře pracovat. Není problém zavolat patřičné třídy, a předat řízení našemu online redakčnímu systému.
Dají se tak velice rychle vytvořit například tyto SEO URL:
- Atom 0.3: https://myego.cz/extra/atom
- RSS 0.9: https://myego.cz/extra/rss
- RSS 1.0: https://myego.cz/extra/rss1
- RSS 2.0: https://myego.cz/extra/rss2
- RSS komentářů: https://myego.cz/extra/comment
- či třeba log hledaných slov
Původní URL typu /xml-rss2.php?full=yes samozřejmě zůstávají stále zcela funkční. A není problém těm URL přidat třeba ještě koncovku .XML a vytvořit tak dojem, že se jedná o statické soubory :)