DEV Community

Cover image for Twelve-Factor App módszer a gyakorlatban / 1. rész
Simon Benjámin
Simon Benjámin

Posted on

Twelve-Factor App módszer a gyakorlatban / 1. rész

A Twelve-factor app alapján fogok pár dolgot az egyik projektemmel kapcsolatban megosztani. Jelenlegi cél a kiinduló állapot feljavítása, kezelhetőbbé tétele. A szokásos: megy a versenyautó és menet közben cserélünk motort. Szépen lépésenként egy jobb, karbantarthatóbb, stabilabb, biztosabb, működőbb környezet és kód felé haladva.
Tanulni, fejlődni, minden nap!

I. Codebase

A kódbázissal nem volt gond, ugyanis nem volt verziókezelve 😎 😆 (meglepő de egy másik projekt kapcsán is pont ezt mesélték, hogy eddig 2 fejlesztő dolgozott és most kezdték verziókelőbe beemelni a kódot) ezt gyorsan lehetett orvosolni egy github repositoryval. Ami még engem zavart, hogy semmi archívum, előzmény nem állt rendelkezésre, hogy mit csinált az előző fejlesztő az elmúlt időszakban.
Szerencsére a szerveren talált mentésekből (havi és napi 1 hétre visszamenőleg) végül sikerült gyártani egy kis verziótörténetet.

II. Dependencies

A függőségek a kódbázissal kéz a kézben jártak, a jövőben Composer-t használunk erre.

III. Config

Itt lesz teendő bőven, minden IS a kódba van égetve. Ezeket szépen el kell kezdeni kiszervezni. Ennek az első lépései megtörténtek. Én régebben az Apache-ban használtam ENV beállításokat, pl:

SetEnv APP_ENV "development"
Enter fullscreen mode Exit fullscreen mode

Ez alapján már a fejlesztőkörnyezetből (Vagrant virtuális gép) az emailek nem kerülnek kiküldésre, hanem a MailHog kapja el őket.

Elkezdtem néhány Bash scriptet készíteni: init, külső programok telepítése (Composer, PHPUnit, PHPCPD, PHPMD és PHP-CS-Fixer) és itt is szükségem lett volna az APP_ENV értékére, ami ugye Apache beállítás és CLI-ben nem elérhető.

Első körben átraktam mindent az /env/environment-be, majd mivel nem akartam ezt a globális részt szemetelni, meg amúgy is szebb elkülönítve, illetve az ebben használt formátumot (APP_ENV=development) az Apache /etc/apache2/envvars nem tudta betölteni / feldolgozni, így a /etc/profile.d/CUSTOM-environment.sh-be kerültek át az adatok, ide viszont már az export APP_ENV=development formában.

Az Apache /etc/apache2/envvars-ban meg simán berántható a fenti file tartalma:

# Load all the CUSTOM environment variables.
. /etc/profile.d/CUSTOM-environment.sh
Enter fullscreen mode Exit fullscreen mode

Így most CLI-ben is megvannak a beállítások és az Apache-on keresztül a PHP is megkapja őket.

Top comments (0)