Lazymephp adalah kerangka kerja PHP yang kecil dan mudah dipelajari/digunakan yang telah saya gunakan selama beberapa waktu, dengan sukses, dan yang memiliki beberapa fitur bagus:
Gagasan di balik lazymephp adalah untuk memungkinkan saya menjadi malas, jadi untuk membantu dalam tugas itu, ia hanya perlu mengatur basis data yang tepat, dengan tabel dan hubungan di antara mereka.
Satu -satunya batasan adalah bahwa Anda benar -benar perlu memiliki kunci utama di setiap tabel.
Jika struktur database perlu diubah (ditambahkan/dihapus kolom, apa pun) Anda selalu dapat meregenerasi semua kode (dengan beberapa tindakan pencegahan).
git clone https://github.com/Peixinho/LazyMePHP myAwesomeProject
#optional, but I advise to start your own git repository, for many reasons...
cd myAwesomeProject && rm -rf .git
cd src/Ext
composer update (to get dependencies)
# run initial config
php LazyMePHP config
Sekarang akan menjalankan konfigurator awal di baris perintah, di mana Anda harus mengisi item berikut:
Selanjutnya, Anda bisa berlari
php LazyMePHP build
Jika Anda menjalankan alat ini setelah pembuatan awal dan Anda telah membuat perubahan pada formulir, API, atau kelas yang dihasilkan (Anda tidak boleh mengubah kelas yang dihasilkan), perubahan Anda bisa hilang, alat ini berbasis tabel, jadi jika Anda mengubah beberapa formulir tabel atau API tertentu, jangan pilih.
Setelah ini, Anda akan memiliki daftar tabel basis data Anda, di mana Anda dapat memilih apa yang harus dibangun dan beberapa opsi lain: - D : Mengubah deskriptor tabel - C : Bangun kelas - f : Bangun Formulir - A : Bangun API - E : Mengaktifkan logging setelah ini akan mencantumkan semua tabel, dan Anda dapat memilih semua, dengan menggunakan 'A', atau memilih satu atau beberapa, 1 yang dipisahkan. Ini sama untuk semua kelas, bentuk dan API.
Jika semuanya berjalan dengan baik, Anda akan memiliki indeks kerja dengan beberapa fungsi dasar.
php LazyMePHP serve
dan navigasikan ke
http://localhost:8080
| Pengguna |
|---|
| ID PK |
| fk countryid |
| Nama |
| Usia |
| Negara |
|---|
| PK Countryid |
| Countryname |
Memiliki pk country.countryid -> fk user.countryid
Setiap tabel yang dihasilkan akan memiliki formulir yang berfungsi sebagai berikut:
## Classes
Every table generated will have a class that works as follows:
- Each Table will have a Class File by default in /src/Classes/[Table Name].php
- All Classes will be in namespace LazyMePHPClasses
- All Class columns have getters and setters *Get*[Column Name], *Set*[Column Name]
- All Classes have Save method, if Id is provided when constructing object:
```
$user = new User(); $user->Save(); // Will act as an INSERT
...
$user = new User(123); $user->Save(); // Will act as an UPDATE
```
-All classes have a Delete method, if id was provided upon constructing object
- Foreign members can be built automatically
```
// Country
$pt = new LazyMePHPClassesCountry();
$pt->SetCountryName('Portugal');
$pt->Save();
// User
$user = new LazyMePHPClassesUser();
$user->SetName('Peter');
$user->SetAge('30');
$user->SetCountryId($pt->Getid());
$user->Save();
echo $user->GetId(); // e.g. 123 - id is the primary key in User Table
// Retrieving user data and changing it
$user = new LazyMePHPClassesUser(123);
echo $user->GetName(); // 'Peter'
$user->Setname('John');
$user->Save();
// Access Foreign members by uing Get[Column Name]Object
echo $user->GetCountryIdObject()->GetCountryName();
// And changing it
$user->GetCountryIdObject()->SetCountry('England'); // Of course, you are changing Country Name in Country Table
$user->GetCountryIdObject()->Save();
# Not building Foreign members
$user = new LazyMePHPClassesUser(5, false); // this won't query foreign tables
```
- Every class will have a *table*_list class, that allows you to select a list of that class type
- Every List have a *FindBy*[Foreign Column Name], *FindBy*[Foreign Column Name]*Like*, *OrderBy*[Foreign Column name], *GroupBy*[Foreign Column], *Limit*
```
$users = new LazyMePHPClassesUser_List();
$users->FindByNameLike('John');
$users->OrderByAge();
// As in regular classes, you can or not build foreign tables, by default is building them
foreach($users->GetList() as $u) { echo $u->GetName(); echo $u->GetCountryIdObject()->GetCountryName(); }
// Not building foreign members
foreach($users->GetList(false) as $u) ...
```
## API
Every table generated will have some routes created in src/api/RouteAPI.php, and they make use of the controllers of each table
- Accessible from /api/[Table Name]/ (.htaccess for apache, didnt bother with others)
http: // localhost: 8080/API/pengguna/ # akan menghasilkan semua informasi pengguna dalam format JSON
http: // localhost: 8080/API/pengguna/? findBynamelike = John & Limit = 10 # akan menghasilkan semua informasi pengguna dalam format JSON yang cocok dengan kriteria dan batasan hingga 10
http: // localhost: 8080/API/USER/123 # Will Output Pengguna 123 Informasi dalam format JSON
Yeap, itu benar! Namun, Anda dapat mengonfigurasinya untuk hanya mengekspos kolom yang Anda inginkan (semuanya secara default) dengan mengedit file
/api/src/RouteAPI.php
yang dihasilkan oleh utilitas. Untuk setiap tabel, serangkaian kolom dibuat dan hardcoded dalam file itu, dan jika nama kolom ada di dalam array itu, data diekspos, jika tidak tidak ditampilkan, dan BTW, keamanan bukan tanggung jawab lazymephp.
Ketika opsi ini diaktifkan, 3 tabel ditambahkan ke database Anda yang akan mendaftarkan setiap perubahan yang dilakukan ke database. Satu -satunya konfigurasi yang perlu dilakukan adalah mengedit
/src/Configuration/Configurations.php
dan tentukan apa auth pengguna yang akan terdaftar sebagai pemilik perubahan dalam database
// ACTIVITY LOG
$CONFIG['APP_ACTIVITY_LOG']=1;
$CONFIG['APP_ACTIVITY_AUTH']=$_SESSION['user_logged'];
Penampil di bawah /logging dan menunjukkan daftar permintaan yang dipesan berdasarkan tanggal Desc, dan ada beberapa filter yang dapat digunakan. Ini bukan penampil unggulan penuh, Anda dapat melihatnya sebagai contoh untuk memperluas (tapi itu bekerja dengan cukup baik)
Mit