[[oktatas:web:back-end_framework:leaf|< Leaf]]
====== Leaf minimális függvényekkel ======
* **Szerző:** Sallai András
* Copyright (c) 2024, Sallai András
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|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
Ebben a leírásban az adatbázisrész nincs befejezve.
===== 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 =====
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:
json('műkszik');
}
}
get('/employees', 'EmployeeController@index');
app()->run();
===== Külön routing =====
run();
get('/employees', 'EmployeeController@index');
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
);