Programozás

Programozással kapcsolatos ötletek, megoldások

BB kód youtube videókhoz

Youtube videóra utaló borító kép

A napokban kérdezte tőlem egy ismerősöm, hogy hol talál youtube linket értelmező BB kódot. Nyilván, ma már mindenhez írtak ezerféle megoldást, de egy gyors Google kereséssel nem találtam megbízhatónak tűnőt, ezért kis gyakorlásként írtam egyet. Ezen azért nyilván lehetne még optimalizálni, de ha valakinek hiányzik egy függvény, amivel Youtube videók linkjét vagy csak azonosítóját alakíthatja lejátszható videóvá, akkor használja bátran.

Megosztás/Mentés

Absztrakt osztály, interfész és trait-ek közti különbségek

cikk borítókép

Tegye fel a kezét, aki még nem bizonytalanodott el abban, hogy mikor nyúljon absztrakt osztályhoz és mikor interfészhez! Annak ellenére, hogy a különbséget általában mindenki érti vagy érteni véli, mégis néha felcserélhetőnek tűnik a kettő. És ez pedig csak bonyolódott PHP-ben, mióta megjelentek a trait-ek, amik sok esetben nagyon vonzónak tűnnek. Ezekről mind írtam 2011-ben egy összefoglaló cikkben, amit szintén érdemes elolvasni, de vajon mikor, melyiket kell alkalmazni a gyakorlatban? Ezt igyekszem tisztázni ebben a cikkben.

Megosztás/Mentés

Prefixháború az osztályok elnevezésében

cikk borítókép

Van egyfajta háború az programozói világban az osztályok, interfészek és most már a PHP esetén a trait-ek elnevezését illetően. Igen szélsőséges vélemények tudnak megjelenni, amik nagyon el tudják bizonytalanítani az amúgy is bizonytalan fejlesztőpalántát, de talán még a régebb óta programozókat is. Ahogy az sajnos általában lenni szokott, sokan annyira ragaszkodnak a véleményükhöz, hogy a másik oldal képviselőin már-már szánakoznak, mily balgaságot követnek el. Azt hiszem, itt az ideje egy kissé rugalmasabb megközelítésnek és összehasonlításnak arról, hogy a fenti definíciókat miként érdemes elnevezni, illetve miért nem eredendő bűn egyik vagy másik megoldástól eltérni. A cikkben az egyes csoportok nevei a saját fantáziám szüleményei, hogy megfoghatóbbá tegyem a különbséget.

Megosztás/Mentés

Phar fájlok, avagy PHP archívumok

A Phar egy mozaik szó, ami a PHP Archive, azaz a PHP Archívum szavakból jött létre és egyben az archívum fájlok kiterjesztése is. Java programozók a JAR-hoz, illetve WAR-hoz hasonlíthatják. Bár bizonyos tekintetben a Windows DLL fájljaival is párhuzamot vonhatnánk, hiszen egy fájlba csomagolt programkönyvtárról beszélünk. A DLL-ekkel ellentétben viszont a PHAR fájlok futtathatók is, mint egy exe. Természetesen attól távol áll, mivel továbbra is a PHP értelmező lesz az, ami az értelmezést, futtatást végzi.

A PHAR kicsit mostoha gyerek, mert el is terjedt és nem is. Míg a JAR gyakorlatilag kéz a kézben jár a Java-val, a PHP archívumok nem ennyire általánosak és bizony gondolkodni kell rajta, hogy mikor, mire is érdemes használni, ha egyáltalán érdemes.

A PHP, fájlkiterjesztések és kódszervezés című cikkben kihagytam ezt a formátumot, ami lehetett volna szándékos, de szimplán elfelejtettem. Most viszont alaposabban körbejárom a témát. Igyekszem választ adni néhány potenciális kérdésre, illetve mutatok példákat és felhívom a figyelmet a buktatókra.

Abból, amit ez a formátum ígér, nem sikerült mindent kipróbálnom. A dokumentáció gyakran hiányos, és nem is beszélnek róla mások sem. Ettől függetlenül összeállítottam egy példasorozatot a főbb funkciók bemutatására a teljesség igénye nélkül. A példák elérhetők github-on vagy letölthetők Docker image-ként is "1.0" tag-et megadva.

Megosztás/Mentés

PHP, fájlkiterjesztések és kódszervezés

A fájlkiterjesztések kérdéséről azt gondolhatja mindenki, hogy ez egyértelmű, pedig nem az. Legalábbis sokaknak valószínűleg nem. Megpróbálom tehát tisztázni, hogy egyáltalán mi a jelentősége a témának, főként PHP programozás esetén, de általában véve is. Kitérek arra, hogy mikor, milyen kiterjesztést érdemes választani, illetve mikor, milyent nem. Ha pedig nem javasolt egy megoldás, akkor mi az, ami a követendő út.

Megosztás/Mentés

Statikus oldal lapozása görgetéssel

A félreértések elkerülése végett, nem arról lesz szó, hogyan tölthetsz be új tartalmat görgetéssel, hanem egy statikus weblap egyes részei között válthatsz úgy, mintha azok önálló oldalak lennének.

Megjegyzem, nem biztos, hogy én vagyok a legalkalmasabb ember ennek a témának a kitárgyalására, de minden esetre egy, a mai böngészőkben működő megoldást részletesen bemutatok és a tőlem telhető módon általánosan is beszélek a témáról.

Akit csak a végeredmény érdekel mindenféle rizsa nélkül, kattintson a tartalomjegyzékben a "Csak a végső kód" linkre.

Megosztás/Mentés

Apache htaccess engedélyezése

Apache HTTPD szerverekben az alapértelmezetten ".htaccess" nevű fájlokban lehet bizonyos szerveroldali, könyvtárfüggő konfigurációkat végezni, amikben a szerver újraindítása nélkül életbe lépnek. Az erről szóló leírások többnyire felsorolás-szerűek és kevéssé pontosak, nem világosak. Megpróbálom érthetően leírni, hogy bírhatjuk működésre.

Megosztás/Mentés

XDebug és NetBeans távoli hibakereséshez

Még 2009 októberében írtam cikket Hibakeresés PHP-ban címmel. Ott főként elvi megoldásokról és a forráskód megváltoztatásával történő hibafelderítésről volt szó. Kézi beavatkozást igényelt és azt, hogy el ne felejtsük a végén törölni a módosításokat.

Van azonban egy jóval hatékonyabb módszer is, amit ugyan megemlítettem már akkor is, de ebben a fejezetben konkrétan az XDebug telepítését, konfigurálását és használatát mutatom be a jelenleg általam preferált NetBeans segítségével.

Megosztás/Mentés

Fájlmegosztás Samba szerverrel

A Samba megosztás beállítása talán a legjobb módszer a Debian 6 fájlrendszerének a Windows rendszerből eléréséhez, mivel a mögötte álló SMB protokollt már nem kell bemutatni a Windowsnak. Nincs szükség semmilyen speciális kliensszoftver használatára. A Debian 6 telepítésekor pedig a szervert is egy kattintással telepítésre jelölhetjük, vagy akár utólag is feltehető.

Ebben a fejezetben a Samba 3.5.6 fájlmegosztások alapvető beállításait mutatom be két megosztás elkészítésén keresztül.

Megosztás/Mentés