< Leaf

Leaf minimális függvényekkel

Szerző: Sallai András

Copyright © 2024, Sallai András

Licenc: CC BY-SA 4.0

Web: https://szit.hu

Bevezetés

Generátorok nélkül, függvényekkel, minimalista módon dolgozunk ebben a leírásban.

Egy minta:

https://github.com/oktat/emp_api_leaf.git

Projekt készítése

mkdir app01
cd app01

A leaf telepítése

Telepítjük az aktuális könyvtárba a Leaf-t a vendor könyvtárba.

composer require leafs/leaf

A parancs után létrejön a egy vendor nevű könyvtár.

Szoftver

<?php require __DIR__ . '/vendor/autoload.php'; app()->get('/msg', function() { response()->json(['msg' => 'Hi!']); }); app()->run();

Fejlesztői szerver

php -S localhost:8000 -t .

Tesztelés

Tesztelés HTTPie kliens segítségével:

http localhost:8000/msg

Controller

Hozzunk létre, például a projekt gyökérkönyvtárában egy EmplyoeeController.php fájlt:

<?php class EmployeeController { public function index() { response()->json('műkszik'); } }
<?php require __DIR__ . '/vendor/autoload.php'; require "EmployeeController.php"; app()->get('/employees', 'EmployeeController@index'); app()->run();

Külön routing

<?php require __DIR__ . '/vendor/autoload.php'; require 'api.php'; app()->run();
<?php require "EmployeeController.php"; app()->get('/employees', 'EmployeeController@index');
<?php class EmployeeController { public function index() { response()->json('műkszik'); } }

Adatbázis

composer require leafs/db

SQLite

db()->connect([ 'dbtype' => 'sqlite', 'dbname' => 'db.sqlite', ]);

MariaDB

// syntax db()->connect('hostname', 'dbnev', 'user', 'titok', 'mysql');

Lekérdezés:

$emps = db()->query('SELECT * FROM employees')->all();
drop table if exists employees; create table employees ( id int unsigned not null primary key auto_increment, name varchar(50), city varchar(50), salary double, created_at timestamp default current_timestamp, updated_at timestamp default current_timestamp on update current_timestamp );