[[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