[[oktatas:programozás:php|< PHP]] ====== Fejlesztői környezet ====== * **Szerző:** Sallai András * Copyright (c) 2014, Sallai András * Szerkesztve: 2014, 2015, 2017, 2019, 2021, 2024 * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]] * Web: https://szit.hu ===== A PHP értelmezőről ===== A PHP szerveroldali nyelv, vagyis PHP értelmező nélkül, csak böngészőben nem tudjuk tesztelni. Lehetőség van a PHP parancssoros értelmezőjének használatára is, így a megkerülhető egy webszerver telepítése. Egy fejlesztőnek, hosszú távon mindenképpen szüksége van egy webszerverre is. A PHP beépített webszerverének indítása: php -S localhost:8000 -t . Hibák mutatása a böngészőben, ha nincs bekapcsolva: php -d display_errors=on -S localhost:8000 -t . Ha távolról is elérhető szeretnénk tenni: php -S 0.0.0.0:8000 ===== Fejlesztői környezet Windowson ===== Webszerver, MySQL szerver PHP-val a legegyszerűbben az XAMPP csomaggal telepíthető. Szükségünk lesz valami szövegszerkesztőre is. Ha támogatja a kódkiegészítést, akkor az nagy segítség lehet. Ajánlott szerkesztők: * [[oktatas:programozas:programok:visual_studio_code|VSCode]] * [[oktatas:web:fejlesztői_környezet_kialakítása:atom|Atom]] * [[oktatas:programozas:programok:netbeans|NetBeans]] * Notepad++ * Notepad2 * Scite * Geany * Bluefish * Brackets Megjegyzés: A Notepad++ UTF-8 [[oktatas:web:szótár#bom|BOM]]-al hibás PHP értelmezést eredményez. Dolgozzunk BOM nélkül. ===== AMP szerverek ===== * LAMP -- https://bitnami.com/stack/lamp * XAMPP * WAMP -- http://www.wampserver.com/ ==== LAMP ==== Megoldás gyűjtemény dinamikus weboldalak létrehozására. * **L**inux * **A**pache * **M**ariaDB vagy **M**ySQL * **P**erl, **P**HP vagy **P**ython Töltsük le a LAMP szervert a weblapjáról: * https://bitnami.com/stack/lamp A leírás pillanatában (2019-05-04) a 7.1.29 verzó érhető el. Így letöltéskor kapunk egy ilyen állományt: * bitnami-lampstack-7.1.29-0-linux-x64-installer.run A .run kiterjesztésű fájl egy ELF bináris. Adjunk rá futtatási jogot, majd futtassuk: chmod +x bitnami-lampstack-7.1.29-0-linux-x64-installer.run ./bitnami-lampstack-7.1.29-0-linux-x64-installer.run A telepítő /opt/lampstack-7.1.29-0 könyvtárba telepszik alapértelmezetten, amit a telepítés során megváltoztathatunk. A csomaghoz tartozik egy GUI menedzselő program is. Az indításhoz lépjünk be /opt/lampstack-7.1.29-0 könyvtárba, majd rendszergazdaként indítsuk: .manager-linux-x64.run Telepítés Linuxon apt update apt install apache2 php5 mysql-server ==== LEMP szerver ==== A LEMP szerver esetén az Apache-t felváltja a Nginx: * Linux * Enginx * MySQL * PHP Tenedők: apt install nginx ufw allow 'Nginx HTTP' apt install mysql-server apt install php-fpm php-mysql ==== XAMPP ==== A LAMP szerverek keresztplatformos változata. Telepíthető Windows, Linux és macOS gépekre is. Webszerver, adatbázis szerver PHP-val, minden platformra. A webszerver és a PHP telepíthető külön-külön, azonban az XAMPP csomag használata. Telepítés után kapunk egy Control Panel nevezetű felületet, amin elindíthatjuk az Apache webszervert. Az XAMPP alapértelmezésként a c:\xampp\ könyvtárba telepszik. A PHP alapú weboldalainkat a következő helyre tehetjük: c:\xampp\htdocs\ Ebben a könyvtárban célszerű létrehozni, például egy php könyvtárat: c:\xampp\htdocs\php\ Ide másolva a index.php állományunkat: c:\xampp\htdocs\php\index.php a következő helyen érhetjük el a generált weboldalt a böngészőben: http://localhost/php/ Windows 10-n az XAMPP telepítésekor UAC figyelmeztetés jelenik meg. Menjen tovább és, hagyja, hogy a telepítő a C:\XAMPP könyvtárba telepítse a szoftvert vagy kapcsolja ki a vezérlőpultban az UAC-t. * Security and Maintenance > Change User Account Control Settings * Biztonság és karbantartás > Biztonság és karbantartás beállításainak módosítása * [ ]Felhasználói fiókok felügyelete === Telepítés Chocolatey csomagkezelővel === choco install xampp-73 Szükség szerint más verziók is telepíthetők: choco install xampp-74 choco install xampp-80 choco install xampp-81 === macOS === XAMPP esetén a felhasználó felvételnél a host maradjon %. ==== WAMP szerver ==== A LAMP windowsos változata, a WAMP tartalmazza a webszervert, adatbázis szervert és PHP-t. * **W**indows * **A**pache * **M**ySQL * **P**HP ===== PHP kapcsolók ===== A php.ini fájlban a display_errors értékei a különböző környezetben: * alapértelmezett érték: On * fejlesztői érték: On * termék esetén az érték: Off Az error_reporting értéke: * alapértelmezett érték: E_ALL & ~E_NOTICE * fejlesztői érték: E_ALL | E_STRICT * termék esetén az érték: E_ALL & ~E_DEPRECATED Van aki szerint fejleszteni mindig E_STRICT + E_NOTICE bekapcsolt állapota mellett jó. ===== Unit teszt ===== apt install phpunit ===== PHP referencia ===== * http://www.php.net/docs.php ===== Hasznos eszközök ===== * http://phpsysinfo.github.io/phpsysinfo/ (2019; PhpSysInfo) * http://filp.github.io/whoops/ (2019; Whoops) * https://github.com/squizlabs/PHP_CodeSniffer (2019; kód elemzés, formázás) ===== Online ===== * https://wtools.io/php-sandbox (2020) * http://phpfiddle.org/ (2020) ===== macOS ===== PHPMyAdmin esetén: * localhost helyett IP cím * szükséges portszám ===== Több PHP verzió ===== ==== Windowson ==== Töltsük le a kívánt verziókat: * https://windows.php.net/download/ Állítsuk be az útvonalat: set PATH=C:\xampp\php;%PATH% Ha az apache webszervernek is szüksége van a PHP-ra, akkor állítsuk be httpd.conf fájlban a kívánt PHP verziót, például: LoadModule php7_module c:\php7\libphp7.so ==== Linuxon ==== Telepítsük a kívánt PHP verziókat. Például: apt install apt-transport-https wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/sury-php.list apt update apt install php8.1 Ha több PHP verziónk van, használjuk az alternatives rendszert: update-alternatives --config php Sqlite használata esetén szükség lehet a php.ini szerkesztésére. Keressük meg a kiterjesztést: //... extension=pdo_sqlite //... extension=sqlite3 ===== Visual Studio Code ===== Bővítmények: * PHP Debug * PHP Intelephense * PHP IntelliSense * PHP Extension Pack Intelephense rövidítés: * fun