oktatas:web:back-end_framework:cakephp
Különbségek
A kiválasztott változat és az aktuális verzió közötti különbségek a következők.
Előző változat mindkét oldalonElőző változatKövetkező változat | Előző változat | ||
oktatas:web:back-end_framework:cakephp [2023/06/02 21:56] – [Törlés] admin | oktatas:web:back-end_framework:cakephp [2025/08/01 11:10] (aktuális) – eltávolítva admin | ||
---|---|---|---|
Sor 1: | Sor 1: | ||
- | [[oktatas: | ||
- | |||
- | ====== CakePHP ====== | ||
- | |||
- | * **Szerző: | ||
- | * Copyright (c) Sallai András, 2021, 2022, 2023 | ||
- | * Licenc: [[https:// | ||
- | * Web: https:// | ||
- | |||
- | ===== A CakePHP ===== | ||
- | |||
- | |||
- | Gyors, letisztult, könnyen használható PHP keretrendszer. | ||
- | |||
- | Webhely: | ||
- | * https:// | ||
- | |||
- | |||
- | ===== Kezdés ===== | ||
- | |||
- | Szükségünk van a composer-re. | ||
- | |||
- | |||
- | Projekt készítése: | ||
- | composer create-project --prefer-dist cakephp/ | ||
- | |||
- | |||
- | Projekt létrehozása az aktuális könyvtárba: | ||
- | composer create-project --prefer-dist cakephp/ | ||
- | |||
- | Egyszerűen: | ||
- | composer create-project cakephp/app app01 | ||
- | |||
- | ===== Könyvtársturktúra ===== | ||
- | |||
- | < | ||
- | app01/ | ||
- | |-bin/ | ||
- | |-config/ | ||
- | |-logs/ | ||
- | |-plugins/ | ||
- | |-resources/ | ||
- | |-src/ | ||
- | | |-Console/ | ||
- | | |-Controller/ | ||
- | | |-Model/ | ||
- | | `-View/ | ||
- | |-templates/ | ||
- | |-tests/ | ||
- | |-tmp/ | ||
- | |-vendor/ | ||
- | |-webroot/ | ||
- | |-composer.json | ||
- | |-index.php | ||
- | |-phpcs.xml | ||
- | |-phpstan.neon | ||
- | |-phpunit.xml.dist | ||
- | `-README.md | ||
- | </ | ||
- | |||
- | ===== Fejlesztői szerver ===== | ||
- | |||
- | bin/cake server | ||
- | |||
- | |||
- | Van egy alap weblap: | ||
- | * http:// | ||
- | |||
- | |||
- | ===== Adatbázis ===== | ||
- | |||
- | Létre kell hozni az adatbázist, | ||
- | |||
- | <code mysql> | ||
- | create database app01 | ||
- | character set utf8 | ||
- | collate utf8_hungarian_ci; | ||
- | </ | ||
- | |||
- | <code mysql> | ||
- | grant all privileges | ||
- | on app01.* | ||
- | to app01@localhost | ||
- | identified by ' | ||
- | </ | ||
- | |||
- | A CakePHP-ban az adatbázisban hozzuk létre a táblát, a ORM ebből készít | ||
- | osztályt. | ||
- | |||
- | |||
- | <code mysql> | ||
- | create table employees ( | ||
- | id int not null primary key auto_increment, | ||
- | name varchar(50), | ||
- | city varchar(50), | ||
- | salary double | ||
- | ); | ||
- | </ | ||
- | |||
- | ===== Adatbázis elérése ===== | ||
- | |||
- | |||
- | ==== app_local.php ==== | ||
- | |||
- | Másik lehetőség az app_local.php fájl szerkesztése. | ||
- | |||
- | Szerkesszük a **config/ | ||
- | |||
- | <code php> | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ], | ||
- | </ | ||
- | |||
- | |||
- | ===== Generálás ===== | ||
- | |||
- | Generáljunk modellt és kontrollert: | ||
- | |||
- | < | ||
- | bin/cake bake model employees | ||
- | </ | ||
- | |||
- | |||
- | A modell létrehozásához előbb létre kell hozni az adatbázist | ||
- | a táblával együtt. A modell létrejön a tábla alapján. | ||
- | |||
- | |||
- | Létrejön az src/ | ||
- | |||
- | Hozzuk létre a kontrollert: | ||
- | |||
- | < | ||
- | bin/cake bake controller employees | ||
- | </ | ||
- | |||
- | Létrejön az src/ | ||
- | |||
- | ===== Routing ===== | ||
- | |||
- | Szerkesszük a routingot: | ||
- | <code php> | ||
- | // config/ | ||
- | |||
- | //... | ||
- | | ||
- | $builder-> | ||
- | $builder-> | ||
- | }); | ||
- | </ | ||
- | |||
- | A routingot most API számára állítottuk be. | ||
- | |||
- | ===== Összes lekérdezése ===== | ||
- | |||
- | |||
- | Szerkesszük a kontrollert: | ||
- | <code php src/ | ||
- | public function index() | ||
- | { | ||
- | $employees = $this-> | ||
- | $this-> | ||
- | $this-> | ||
- | } | ||
- | </ | ||
- | |||
- | Nézzük meg API kliensben: | ||
- | * http:// | ||
- | |||
- | ^ Végpont | ||
- | | api/ | ||
- | |||
- | |||
- | ===== Hozzáadás ===== | ||
- | |||
- | A POST, PUT, PATCH, DELETE metódusoknak CSRF tokenhez vannak kötve. | ||
- | |||
- | Az eredeti CSRF beállítást finomítjuk: | ||
- | |||
- | <code php src/ | ||
- | public function middleware(MiddlewareQueue $middlewareQueue): | ||
- | { | ||
- | $middlewareQueue | ||
- | -> | ||
- | -> | ||
- | ' | ||
- | ])) | ||
- | -> | ||
- | -> | ||
- | |||
- | //Az útvonal kizárása: | ||
- | $csrf = new CsrfProtectionMiddleware(); | ||
- | $csrf-> | ||
- | if ($request-> | ||
- | return true; | ||
- | } | ||
- | }); | ||
- | $middlewareQueue-> | ||
- | |||
- | return $middlewareQueue; | ||
- | } | ||
- | </ | ||
- | |||
- | Az összes /api kezdetű végpontot is megadhatunk: | ||
- | <code php> | ||
- | $csrf-> | ||
- | $endpoint = $request-> | ||
- | if ( preg_match('/ | ||
- | return true; | ||
- | } | ||
- | }); | ||
- | </ | ||
- | |||
- | * https:// | ||
- | |||
- | ===== Hozzáadás ===== | ||
- | |||
- | <code php src/ | ||
- | public function add() | ||
- | { | ||
- | $this-> | ||
- | $employee = $this-> | ||
- | if ($this-> | ||
- | $message = ' | ||
- | } else { | ||
- | $message = ' | ||
- | } | ||
- | $this-> | ||
- | ' | ||
- | ' | ||
- | ]); | ||
- | $this-> | ||
- | } | ||
- | </ | ||
- | |||
- | * http:// | ||
- | |||
- | ^ Végpont | ||
- | | api/ | ||
- | |||
- | <code json> | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | } | ||
- | </ | ||
- | |||
- | ===== Módosítás ===== | ||
- | |||
- | <code php src/ | ||
- | public function edit($id = null) | ||
- | { | ||
- | $this-> | ||
- | $employee = $this-> | ||
- | $employee = $this-> | ||
- | if ($this-> | ||
- | $message = ' | ||
- | } else { | ||
- | $message = ' | ||
- | } | ||
- | $this-> | ||
- | ' | ||
- | ' | ||
- | ]); | ||
- | $this-> | ||
- | } | ||
- | </ | ||
- | |||
- | Ha a 9-s dolgozó adatait frissítjük: | ||
- | |||
- | * http:// | ||
- | |||
- | ^ Végpont | ||
- | | api/ | ||
- | |||
- | Amit küldeni kell: | ||
- | |||
- | <code json> | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | } | ||
- | </ | ||
- | |||
- | ===== Törlés ===== | ||
- | |||
- | <code php src/ | ||
- | public function delete($id) | ||
- | { | ||
- | $this-> | ||
- | $employee = $this-> | ||
- | $message = ' | ||
- | |||
- | if (!$this-> | ||
- | $messge = ' | ||
- | } | ||
- | $this-> | ||
- | $this-> | ||
- | | ||
- | } | ||
- | </ | ||
- | |||
- | Delete metódussal küldünk kérést, például a 9 dolgozó törlése esetén a következő címre: | ||
- | * http:// | ||
- | |||
- | ^ Végpont | ||
- | | api/ | ||
- | |||
- | |||
- | ===== A routing szétbontása ===== | ||
- | |||
- | <code php> | ||
- | $routes-> | ||
- | $builder-> | ||
- | $builder-> | ||
- | $builder-> | ||
- | }); | ||
- | </ | ||
- | |||
- | ===== Linkek ===== | ||
- | |||
- | * https:// | ||
- | * https:// | ||
- | * https:// | ||
- | |||
oktatas/web/back-end_framework/cakephp.1685735763.txt.gz · Utolsó módosítás: 2023/06/02 21:56 szerkesztette: admin