Megjegyzések fejlesztőknek
Míg a XOOPS fejlesztési használatra való tényleges telepítése hasonló a már leírt normál telepítéshez, a fejlesztőre kész rendszer felépítése során lényeges különbségek vannak.
Az egyik nagy különbség a fejlesztői telepítésben az, hogy ahelyett, hogy csak a htdocs könyvtár tartalmára összpontosítana, a fejlesztői telepítés megtartja az összes fájlt, és a git segítségével forráskód-vezérlés alatt tartja őket.
Egy másik különbség az, hogy a xoops_data és xoops_lib könyvtárak általában a helyükön maradhatnak átnevezés nélkül, mindaddig, amíg a fejlesztői rendszer nem érhető el közvetlenül a nyílt interneten (azaz magánhálózaton, például útválasztó mögött).
A legtöbb fejlesztő egy localhost rendszeren dolgozik, amely rendelkezik a forráskóddal, egy webszerver veremmel és minden olyan eszközzel, amely a kóddal és az adatbázissal való munkához szükséges.
További információkat a Tools of the Trade fejezetben talál.
Git és virtuális gazdagépek
Szekció neve “Git és virtuális gazdagépek”A legtöbb fejlesztő szeretne naprakészen tartani az aktuális forrásokat, és hozzájárulni a változtatásokhoz az upstream XOOPS/XOOPSCore27 adattárhoz a GitHubon. Ez azt jelenti, hogy a kiadási archívum letöltése helyett érdemes fork a XOOPS másolatát használni, és a git használatával klónozni azt a tárolót a fejlesztői dobozba.
Mivel a lerakatnak sajátos szerkezete van, ahelyett, hogy a htdocs könyvtárból a webszerverre másolna fájlokat, jobb, ha a webszervert a helyileg klónozott lerakaton belüli htdocs mappába irányítja. Ennek elérése érdekében általában létrehozunk egy új Virtual Host vagy vhost-t, amely a git által vezérelt forráskódunkra mutat.
Egy WAMP környezetben az alapértelmezett localhost oldal Eszközök részében egy hivatkozás található a Add a Virtual Host linkre, amely ide vezet:

Ezzel beállíthat egy VirtualHost bejegyzést, amely közvetlenül a (még mindig) git által vezérelt adattárba kerül.
Íme egy példabejegyzés a wamp64/bin/apache/apache2.x.xx/conf/extra/httpd-vhosts.conf-ban
<VirtualHost *:80> ServerName xoops.localhost DocumentRoot "c:/users/username/documents/github/xoopscore27/htdocs" <Directory "c:/users/username/documents/github/xoopscore27/htdocs/"> Options +Indexes +Includes +FollowSymLinks +MultiViews AllowOverride All Require local </Directory></VirtualHost>Előfordulhat, hogy egy bejegyzést is hozzá kell adnia a Windows/System32/drivers/etc/hosts-ban:
127.0.0.1 xoops.localhostMost már telepítheti a http://xoops.localhost/-t tesztelés céljából, miközben érintetlenül hagyja a tárat, és a webszervert a htdocs könyvtáron belül tartja egy egyszerű URL segítségével. Ezenkívül bármikor frissítheti a XOOPS helyi példányát a legújabb mesterre anélkül, hogy újra kellene telepítenie vagy másolnia kellene a fájlokat. A kódon pedig fejlesztéseket és javításokat hajthat végre, hogy hozzájáruljon a XOOPS-hoz a GitHubon keresztül.
Zeneszerzői függőségek
Szekció neve “Zeneszerzői függőségek”A XOOPS 2.7.0 a Composer segítségével kezeli PHP függőségeit. A függőségi fa a htdocs/xoops_lib/-ban található a forrástáron belül:
- A
composer.dist.jsona kiadással együtt szállított függőségek fő listája. - A
composer.jsona helyi másolat, amelyet szükség esetén testre szabhat a fejlesztői környezethez. - A
composer.lockpontos verziókat rögzít, így a telepítések reprodukálhatók. - A
vendor/tartalmazza a telepített könyvtárakat (Smarty 4, PHPMailer, HTMLPurifier, firebase/php-jwt, monológ, symfony/var-dumper, xoops/xmf, QZX0, PHPZ00000067HPXZQ és egyebek).
A XOOPS 2.7.0 friss git klónjához a repo gyökértől kezdve futtassa:
cd htdocs/xoops_libcomposer installVegye figyelembe, hogy a repo gyökérben nincs composer.json – a projekt htdocs/xoops_lib/ alatt él, ezért a Composer futtatása előtt cd-t kell beírnia abba a könyvtárba.
A kiadási tarballok előre feltöltött vendor/-val kerülnek szállításra, de a git klónok nem feltétlenül. A vendor/ érintetlen maradjon a fejlesztési telepítéseknél — A XOOPS onnan tölti be függőségeit futás közben.
A XMF (XOOPS module Framework) könyvtárat a 2.7.0-s verzióban Composer-függőségként szállítjuk, így használhatja a XMF\RequestQZ0,QZXPHHZ0 osztályokat a modul kódjában további telepítés nélkül.