Xamma Basic - Original PHP Podcast framework: Nasazení krok za krokem

Zobrazení: 19

Xamma Basic je původní větev mého PHP frameworku Xamma, na které pracuji od roku 2018. Článek představuje jeho architekturu, funkce, odlišnou filozofii routování přes INI soubor a základní postup nasazení. Článek spoluvytvořil Chat GPT.

Banner k článku o Xamma Basic s přehledem frameworku, INI routování a hlavních funkcí, jako jsou články, podcasty, galerie, Studio a API klíč.
Banner k článku o Xamma Basic s přehledem frameworku, INI routování a hlavních funkcí, jako jsou články, podcasty, galerie, Studio a API klíč. Foto: Chat GPT

Xamma Basic je původní větev mého PHP frameworku Xamma. Jeho vývoj začal v roce 2018 a postupně na něm vznikaly weby pro články, podcasty, galerie a další vlastní aplikace. Balík zachovává původní architekturu Xammy založenou na Carrierech, modelech, pohledech a konfiguraci v souborech INI.

Co je Xamma Basic

Xamma Basic je kompaktní PHP framework a současně hotový základ publikačního systému. Není postaven na klasických Presenterech ani na moderním routovacím souboru s jednotlivými objekty tras. Požadavek prochází přes společný vstupní soubor v adresáři www, systém načte konfiguraci a podle adresy vybere odpovídající Carrier.

Framework je rozdělen především na MainModule a MediaModule. MainModule zajišťuje běžný obsah webu, uživatele a administraci. MediaModule se stará o podcasty, epizody, přehrávání médií a galerie.

Jiná filozofie routování přes carrier.ini

Nejvýraznějším rysem Xamma Basic je routování definované v souboru config/carrier.ini. Každá sekce představuje jednu hlavní část webu. Konfigurace určuje segment adresy, povolené akce a PHP třídu Carrieru, která požadavek zpracuje.

[article]
url=article
actions=process,list,edit,show,create,rss
carrier=App\MainModule\Carriers\ArticleCarrier

První část adresy vybere sekci. Další část adresy představuje akci. Router nejprve ověří, zda je akce uvedena v seznamu actions, a potom předá řízení příslušnému Carrieru. Povolené adresy tak lze přečíst na jednom místě bez procházení všech PHP tříd.

Tato filozofie je odlišná od balíku Xamma Derived. Xamma Basic zachovává původní INI routování a původní způsob organizace projektu, zatímco Derived představuje nověji odvozenou a více přepracovanou architekturu.

Carriery, modely a pohledy

Carrier odpovídá přibližně kontroleru. Přijme požadavek, zkontroluje oprávnění, načte potřebná data a vybere pohled. Databázová práce je oddělena do modelových a logických tříd. Výstup se vytváří pomocí Latte šablon.

Rozdělení umožňuje přidat novou část webu vytvořením Carrieru, modelu a šablony a následným zaregistrováním nové sekce v carrier.ini.

Funkce frameworku

  • Články: vytváření, úpravy, koncepty, kategorie, komentáře, obsahové bloky a RSS.
  • Podcasty: podcastové kanály, jednotlivé epizody, popisy, obrázky, audio soubory, přehrávání a RSS kanály.
  • Galerie: obrazové galerie, náhledy a režim prezentace.
  • Studio: přihlášení uživatelů, profily, správa obsahu a administrátorské funkce.
  • Newsletter: přihlášení a odhlášení odběratelů, seznam adres a odesílání zpráv.
  • Vyhledávání: hledání v článcích a dalším publikovaném obsahu.
  • Blog, kontakt a podpora: jednoduché doplňkové části veřejného webu.
  • Download: samostatná sekce pro zveřejnění souborů ke stažení.
  • API přihlášení: přihlášení do Studia prostřednictvím dlouhého klíče v adrese.

Balík používá PHP 8.2 nebo novější, PDO, Latte, Nette Forms a Nette Mail. Obsahuje také pomocné třídy pro práci s obrázky, soubory, daty, stránkováním, textem a českou diakritikou.

Zabezpečení

Veřejným kořenem webu je pouze adresář www. Konfigurace databáze, zdrojové soubory, logy a dočasná data zůstávají mimo veřejný prostor.

Framework nastavuje bezpečnostní HTTP hlavičky, používá ochranu formulářů proti CSRF, bezpečné cookies, omezení opakovaných neúspěšných přihlášení a zákaz spouštění PHP souborů v adresářích určených pro uploady.

API credential je uložen zašifrovaně v config/apikey.ini. Šifrování využívá nasazovací klíč security.applicationKey ze souboru config/settings.ini. Po změně applicationKey je nutné vytvořit nový API credential.

Nasazení krok za krokem

  1. Rozbalte balík do samostatného adresáře projektu.
  2. V Apache nebo Nginxu nastavte document root na absolutní cestu k adresáři PROJECT_ROOT/www. Kořen celého projektu nesmí být veřejný.
  3. Zajistěte PHP 8.2 nebo novější a rozšíření PDO, DOM, Fileinfo, GD a Mbstring. V Apache zapněte přepisování adres pomocí mod_rewrite.
  4. Zkopírujte vzorovou konfiguraci databáze do config/database.ini a doplňte hostitele, port, databázového uživatele, heslo a název databáze.
  5. Vytvořte prázdnou databázi s kódováním UTF-8 a spusťte soubor database/schema.sql.
  6. V souboru config/settings.ini nastavte doménu, název webu, popis, jazyk, kontaktní e-mail a případné důvěryhodné proxy servery.
  7. Vygenerujte nový šedesátičtyřznakový applicationKey, například příkazem openssl rand -hex 32. Vývojový nebo ukázkový klíč nepoužívejte v produkci.
  8. Adresáře temp, temp/sessions, log, emails, files a www/user musí být zapisovatelné uživatelem webového serveru.
  9. Prvního uživatele vytvořte v kořeni projektu příkazem php bin/create-user.php uzivatelske-jmeno email. Skript si bezpečně vyžádá heslo, které musí mít alespoň dvanáct znaků.
  10. Volitelné API přihlášení vytvořte příkazem php bin/create-api-key.php dlouhy-nahodny-klic uzivatelske-jmeno. Výstup uložte do sekce credentials v souboru config/apikey.ini.
  11. Instalaci ověřte příkazem php bin/validate.php.
  12. Potom otevřete adresu admin/signin a přihlaste se do Studia.

API přihlášení

Vedle běžného přihlášení jménem a heslem lze použít adresu ve tvaru admin/signin/API-KLIC. API klíč je nutné chránit stejně jako heslo, protože může zůstat v historii prohlížeče nebo v přístupových protokolech serveru.

Původní větev projektu Xamma

Xamma Basic není nově vytvořená ukázková aplikace. Jde o upravenou a vyčištěnou distribuci původního systému, na kterém pracuji od roku 2018. Zachovává jeho charakteristické INI routování, Carriery, vlastní databázovou vrstvu a modulární uspořádání.

Balík může sloužit jako základ vlastního publikačního nebo podcastového webu a také jako ukázka jiné cesty k organizaci PHP aplikace, než jakou používají běžné současné frameworky.

Poznámka: Balík Xamma Basic je ke stažení v sekci Download.


Komentáře: 0
Napište komentář

jaký šel, takového potkal

Jak se dnešní přísloví odráží v našem životě a jak naše chování a postoje ovlivňují lidi, které potkáváme?

Rozhovor s Michalem o Betwindu, část 1

Rozhovor s Michalem Králem o kapele Betwind jako pokračování mojí kytarové cesty. V první části nahrávka písně Figure

Kráva zajíce nedohoní

Dnešní přísloví pojednává o realistických očekáváních a limitech schopností a o důležitosti přizpůsobení nároků reálným možnostem.

Dvakrát měř, jednou řež, aneb v podstatě, prostě, tedy a vlastně

Podívejme se na význam přísloví „Dvakrát měř, jednou řež“. Kdy se unáhlené kroky ukazují jako chyby? Proč je někdy lepší chvíli přemýšlet, než jednat?

Přání k Vánocům

Vánoční přání a nahrávka Chtíc, aby spal

Kiksylend na Portě

Jaké to bylo na letošní portě? Působení Kiksylendu na legendárním hudebním festivalu, nahrávky písní Kavárenský povaleč, Kateřina a MDŽ a dále…

Rozhovor s Michalem o Betwindu, část 2

Rozhovor s Michalem Králem o kapele Betwind jako pokračování mojí kytarové cesty. Ve druhé části píseň Ophelia

Vzpomínky nejen školní, část 1: Gymnázium

Úsměvné vzpomínky na léta nejen školní. Přeji příjemný poslech

Drzé čelo lepší než poplužní dvůr

Co je vlastně drzé čelo a co přesně poplužní dvůr? A proč by mělo býti lepší? Málo známé přísloví ovšem opět velmi aktuální

Vzpomínky nejen školní, část 4: Gymnázium naposledy

Závěrečný díl školních vzpomínek

Foto z koncertů skupiny NAŠKRK, část I.

Galerie mých fotografií z koncertu skupiny NAŠKRK pořízené 15. 11. 2002. Foto: Roman Vokurek

Foto z koncertů skupiny NAŠKRK, část II.

Galerie mých fotografií z koncertu skupiny NAŠKRK v sále hotelu v Moravském Krumlově pořízené 7. března 2003. Foto: Roman Vokurek

K pramenům řeky Rokytné II.

Druhá výprava k pramenům posvátné řeky Rokytné tentokráte vedoucí z Moravského Krumlova do Tulešic. Průzkum proveden 19. 5. 2023. Autorem fotografií…

Mariánská kaple v zimě

Fotky z lokality zvané jako Mariánská studánka mezi obcemi Moravský Krumlov a Rokytná, tentokráte pod sněhovou pokrývkou. Fotky pořízeny 10. 12. 2023…

Výstup na Velký Lopeník

Druhá hřebenová výprava v nejkrásnějších horách světa, tedy v Bílých Karpatech, tentokráte zasvěcena dobytí Velkého Lopeníku (911 mnm). Výstup po…

Zima v Moravském Krumlově, část II.

Výběr zimních fotografií z Moravského Krumlova. Snímky pořízeny 2. 12. 2023. Foto: Petra

K pramenům řeky Rokytné III.

Třetí výprava k pramenům posvátné řeky Rokytné tentokráte vedoucí z Tulešic do Tavíkovic. Průzkum neprobádanou, neprostupnou, nedotčenou, divokou,…

Podzim v Moravském Krumlově, část II.

Výběr podzimních fotografií z Moravského Krumlova. Snímky pořízeny 12. 11. 2023. Foto: Petra

K pramenům řeky Rokytné I.

Výprava k pramenům řeky Rokytné, část první od soutoku s Jihlavou v Ivančicích do Moravského Krumlova. Průzkum proveden 22. 4. 2022. Autorem…

Jaro v Moravském Krumlově, část II.

Jarní galerie pořízená z moravskokrumlovského zámeckého parku 5. 5. 2024. Foto: Petra

Výlet do neznáma

Píseň z alba Rozpaky, inspirovaná neznámou dívkou v modrém... Text i hudba byli napsány 9. 12. 2018.

Podzim

Báseň a píseň z alba Rozpaky vydaná v roce 2019. Báseň byla napsána za letní noci 21. 8. 2016, nevzpomínám si přesně, ale myslím, že nad sklenkou whisky.

Třešně a led

Píseň z alba Rozpaky inspirovaná událostmi prvních lednových dní roku 2003. Píseň patří všem, kteří toho roku tragicky zahynuli... Text byl napsán 4. 7. 2016. Hudba byla napsána 27. 8. 2016.

Světem vcelku

Píseň z alba Rozpaky. Inspirace všeobímající, tak trochu osobní výpověď. Pojednání o věcech těžko pochopitelných. Text byl napsán 29. 11. 2015. Hudba byla napsána v lednu 2016.

Změna

Píseň z alba Rozpaky inspirovaná podzimními událostmi roku 2003. Text byl napsán 24. 8. 2016. Hudba byla napsána 20. 12. 2018.

Čumísek

Píseň z alba Rozpaky inspirovaná událostmi roku 2003. Text byl napsán 9. 7. 2016. Hudba byla napsána 17. 12. 2018.

Takový jako tento

Píseň z alba Rozpaky inspirovaná jak jinak nešťastnou láskou. Hudba původně z anglickým textem byla napsána v září 2003. Text byl napsán 20. 2. 2016.

Služby zdarma

Píseň z alba Rozpaky inspirovaná nehynoucí touhou všelijakých obchodníků prodat vám cokoli. Text i hudba byli napsány 10. 5. 2017.

Málem omylem

Vzpomínka na první červencové dny roku 2003. Pokud se vám náhodou něco někdy nepovede, nesahejte na alkohol, je to velice zlý pán a nemá slitování. Text písně byl napsán 8. 5. 2017.

Tak dávno

Vzpomínka na první červencové dny roku 2003. Text i hudba byli napsány 10. 5. 2017.

Video

Zbyněk Sklenský na vernisáži v Knížecím domě v Moravském Krumlově

Populární podcastové epizody

Všechny podcasty
Přísloví pro každý den

jaký šel, takového potkal

Jak se dnešní přísloví odráží v našem životě a jak naše chování a postoje ovlivňují lidi, které potkáváme?

Zbyněk Sklenský

Zbyněk Sklenský

Upovídaný podcast

Rozhovor s Michalem o Betwindu, část 1

Rozhovor s Michalem Králem o kapele Betwind jako pokračování mojí kytarové cesty. V první části nahrávka písně Figure

Kráva zajíce nedohoní

Dnešní přísloví pojednává o realistických očekáváních a limitech schopností a o důležitosti přizpůsobení nároků reálným možnostem.

Přísloví pro každý den

Dvakrát měř, jednou řež, aneb v podstatě, prostě, tedy a vlastně

Podívejme se na význam přísloví „Dvakrát měř, jednou řež“. Kdy se unáhlené kroky ukazují jako chyby? Proč je někdy lepší chvíli přemýšlet, než jednat?

Přání k Vánocům

Vánoční přání a nahrávka Chtíc, aby spal

Kiksylend na Portě

Jaké to bylo na letošní portě? Působení Kiksylendu na legendárním hudebním festivalu, nahrávky písní Kavárenský povaleč, Kateřina a MDŽ a dále kratičké představení celkového vítěze Porty.

Rozhovor s Michalem o Betwindu, část 2

Rozhovor s Michalem Králem o kapele Betwind jako pokračování mojí kytarové cesty. Ve druhé části píseň Ophelia

Vzpomínky nejen školní, část 1: Gymnázium

Úsměvné vzpomínky na léta nejen školní. Přeji příjemný poslech

Drzé čelo lepší než poplužní dvůr

Co je vlastně drzé čelo a co přesně poplužní dvůr? A proč by mělo býti lepší? Málo známé přísloví ovšem opět velmi aktuální

Vzpomínky nejen školní, část 4: Gymnázium naposledy

Závěrečný díl školních vzpomínek

Podcast Zvuky přírody

Další epizody
Zvuky přírody

Červnové ráno

Unikátní dlouhý stereo záznam probouzející se červnové přírody v Moravském Krumlově. Na pozadí jemný déšť, který slabě zesiluje a poté zase zeslabuje. Nahrávka pořízena 10. 6. 2026 ve 4:20 hodin.

Zbyněk Sklenský

Zbyněk Sklenský

Zima v Moravském Krumlově, část I.

Dubnové ráno

Unikátní záznam probouzející se přírody v Moravském Krumlově. Na pozadí dva štěkající srnci a mimo jiné také bažant, hrdlička a datel. Nahrávka pořízena 19. 4. 2026 v 5:00 hodin.

Noční houkání puštíka obecného

Unikátní dlouhý záznam zvuku nočního lesa v Moravském Krumlově za houkání puštíka obecného. V čase 13:55 je pak možno slyšet strašidelné zvuky tvora bojujícího o život. Nahrávka pořízena 10. 9. 2025 ve 3:30 hodin.

Zima v Moravském Krumlově, část I.

Klidná noční atmosféra a prapodivné zvuky

Noční záznam sovího houkání a prapodivné zvuky tvorů bojujícíh o život. Záznam pořízen 10. 9. 2025 ve 3:20.

Noční zářiový déšť

Záznam nočního dešťe při okraji lesa v Moravském Krumlově. Nahrávka pořízena 12. 9. 2025 ve 4:30 hodin.

Poklidné dubnové ráno

Poklidná ranní atmosféra za zvuku krále zpěváků. Nahrávka pořízena 25. 4. 2025 ve 4:40 hodin v Moravském Krumlově v lokalitě Pod Hradbami

Ráno před úsvitem

Ptačí prozpěvování ráno před úsvitem. Nahrávka pořízena 18. 6. 2025 ve 4:00 v Moravském Krumlově

Červnová zahradní serenáda

Ranní ptačí záznam pořízen 18. 6. 2025 ve 3:30 hodin. Poznáte autora ptačího prozpěvování?

Noční nálada

Noční nálada na okraji lesa v Moravském Krumlově. Nahrávka pořízena 2. 8. 2024 v půl jedné ráno.

Ranní příroda na okraji lesa

Unikátní stereo záznam probouzející se ranní přírody na okraji lesa v Moravském Krumlově. Nahrávka pořízena 28. 6. 2024 kolem čtvrté hodiny ranní