Janggelan adalah kerangka kerja PHP yang tidak terduga yang memberi Anda mudah. Sederhana, namun kuat, dan menyenangkan untuk digunakan. Sama seperti kerangka kerja lainnya, Anda tidak akan mengalami kesulitan ketika mencoba memahami Janggelan.
Janggelan dirancang dan fokus berdasarkan konsep MVC. Jadi, kami berusaha menghindari penggabungan sistem MVC dengan alat lain yang dapat membantu Anda dalam pengembangan, karena dapat mengurangi kinerja. Kami terus melampirkannya tentu saja, untuk membantu perkembangan Anda, tetapi itu akan datang dengan sampul yang berbeda.
Harap baca dokumentasi untuk informasi lebih lanjut.
Kami tahu kami tidak dapat menyelesaikan kerangka kerja ini dengan sempurna, dan mungkin tidak sesuai dengan apa yang Anda inginkan. Tapi, kami selalu berusaha menyelesaikannya lebih baik dan membuatnya tidak terduga untuk Anda. Anda dapat berkontribusi dengan kami.
Menambahkan beberapa alat baru.
Tulis ulang semua skrip Janggelan untuk kinerja baru yang lebih baik.
Kurangi beberapa beban server.
Menambahkan beberapa metode Model baru: where() , exec() , execute() .
Dokumentasi tambahan.
Menggunakan caching dan kompresi gZip pada .htaccess .
PHP 7
Ekstensi PDO PHP
Unduh file Janggelan, ekstrak ke direktori aplikasi Anda.
Jika Anda ingin mempublikasikan atau menginstal Janggelan untuk hosting bersama, cara teraman untuk dilakukan adalah menempatkan file dan direktori Janggelan di dalam server root , dan memindahkan semua konten folder public ke public_html atau www .
Anda akan menjalankan aplikasi Anda dari direktori public / public_html / www .
Jika Anda menemukan masalah setelah instalasi, silakan periksa izin file.
__ backend/
|__ .secrets/
|__ config/
|__ framework/
|__ global/
|__ register/
|__ vendor/
|__ autoload.php
|__ composer.json
|__ force.uri
__ public/
|__ assets/
|__ .htaccess
|__ index.php
__ worksheet/
|__ controllers/
|__ model/
|__ providers/
|__ tools/
|__ views/
|__ requests.php
Pada pertama kalinya, mari kita jalankan Janggelan di server Anda. Pastikan sistem Anda telah selesai dengan System Requirements dan installation di atas.
Buka direktori aplikasi Anda yang ditempatkan file janggelan. Masukkan ke folder public . Sebagai contoh, di Linux, Anda dapat melakukannya dengan ini:
cd /var/www/html/your_application/publicBuka server localhost:
php -S localhost:8000Atau Anda dapat melakukannya secara langsung dengan perintah ini:
php -S localhost:8000 -t /var/www/html/your_application/publicSekarang, buka browser Anda, dan kunjungi LocalHost: 8000.
Di Janggelan Anda akan menyebutnya sebagai requests . Dalam kerangka PHP lainnya seperti Laravel, ini disebut sebagai routes . Setiap permintaan di Janggelan ditangani pada worksheet/requests.php . Untuk membuat permintaan baru, buka file itu. Di sana Anda akan melihat contoh request seperti ini:
$ this -> request ( ' GET / @Hello::world ' ); Contoh di atas memiliki berarti: "Minta URI / Dengan Metode Permintaan GET . Jika pengguna mengunjungi / dan URI valid, itu akan diarahkan dan melanjutkan ke controller Hello dengan world metode / fungsi". Berdasarkan contohnya, sekarang Anda dapat membuat permintaan khusus dengan opsi ini: (Argumen atau parameter 1 dipisahkan oleh space ):
// Redirected to Controller.
// Request method can be 'GET' or 'POST'
$ this -> request ( ' GET /home @Hello::world ' );
// Redirected to View.
$ this -> request ( ' GET /home (viewName) ' );
// Redirected to Controller with Protected Rule 'login'.
$ this -> request ( ' GET /home @Hello::world !!login ' );
// Redirected to View with Protected Rule 'login'.
$ this -> request ( ' GET /home (viewName) !!login ' );
// Will proceed the Closure or Callback directly.
$ this -> request ( ' GET /home ' , function ()
{
// Do some stuff...
});
// Will proceed the Closure or Callback directly with Protected Rule 'login'.
$ this -> request ( ' GET /home !!login ' , function ()
{
// Do some stuff...
}); Anda akan mempelajari lebih lanjut tentang Protected Rule nanti. Catatan, gunakan Closure atau Callback hanya saat Anda sedang menguji. Kami selalu merekomendasikan untuk menggunakan View atau Controller sebagai pengalihan.
Controller ditempatkan di worksheet/controllers . Cobalah untuk membuat Controller baru dengan membuat file baru, asumsikan nama file adalah MyController.php . Kemudian, di MyController.php , tulis gaya Controller dasar ini:
<?php namespace controller ;
class MyController extends framework parents Controller
{
public function welcome ()
{
echo ' Welcome to my Controller. ' ;
}
} Di worksheet/requests.php , tambahkan permintaan baru yang akan melanjutkan Controller .
$ this -> request ( ' GET /test @MyController::welcome ' ); Sekarang, kunjungi /test di browser Anda. Jika semuanya baik -baik saja, Anda akan melihat output: Welcome to my Controller. . Nama file Controller harus sama dan cocok dengan nama kelas Controller . Juga, Anda harus berhati -hati tentang Namespace . Jika Anda membuat pengontrol di dalam direktori baru seperti ini:
__ controllers/
|__ my_new_folder/
|__ MyController.php
Kemudian, Namespace dari Controller Anda harus seperti ini: (Ini juga berlaku untuk semua sistem namespaces)
<?php namespace controllers my_new_folder ;
class MyController extends framework parents Controller
{
//
} Anda dapat menghindari untuk memperpanjang frameworkparentsController jika Controller Anda tidak perlu menggunakan beberapa fungsi bawaan seperti $this->LOAD_VIEW() , $this->GET_RULE() , dll.
Model S ditempatkan di worksheet/models . Model digunakan untuk berkomunikasi dengan database. Jadi, saat Anda membuat Model , pastikan itu sesuai dengan data Anda dalam database. Untuk menggunakan Model , Anda harus mengatur konfigurasi basis data Anda di backend/.secrets/.db atau melihat dokumentasi tentang Configuring Database .
Setelah di atas selesai, mari kita coba membuat Model . Pertama, buat file baru di worksheet/models . Asumsikan nama file adalah User.php . Kemudian, tulis konten file dengan gaya Model dasar ini:
<?php namespace model ;
class User extends framework parents Model
{
// This is your table name. It is required by system.
protected static $ table = ' user ' ;
// This is your table columns. Only required if you want to create new
// table into Database.
protected static $ columns = [
' id ' => ' INT(11) AUTO_INCREMENT PRIMARY KEY ' ,
' username ' => ' VARCHAR(255) NOT NULL ' ,
' password ' => ' VARCHAR(255) NOT NULL '
];
} Di Controller Anda, hubungi kelas Model :
<?php namespace controller ;
use model User ;
class MyController extends framework parents Controller
{
public function workingWithModel ()
{
// Initialize object of Model 'User'.
// Now you can use your Model.
$ user = new User ;
}
} Jika Anda tidak memiliki tabel dengan user nama sebelumnya, cukup gunakan metode create() untuk membuat tabel secara otomatis saat Anda menjalankan metode Controller workingWithModel() .
$ user = new User ;
// this will create new table into Database with columns and properties that
// already defined on 'protected static $columns'.
$ user -> create (); Hampir selesai, sekarang Anda hanya perlu menggunakan Model dengan beberapa fungsi atau metode bawaan.
$ user = new User ;
// Open Database connection manually. Only needed if 'auto_connect' config is FALSE.
$ user -> open ();
// Close Database connection manually. Only needed if 'auto_connect' config is FALSE.
$ user -> close ();
// Delete all data in Model 'User' | table 'user'.
$ user -> delete ();
// Delete all data in Model 'User' | table 'user' | where id = 1 and username = name.
$ user -> delete ([ ' id ' => 1 , ' username ' => ' name ' ]);
// Insert new data to Model 'User' | table 'user' | to column username with value
// 'Linus Torvald'.
$ user -> insert ([ ' username ' => ' Linus Torvald ' ]);
// Update data in Model 'User' | table 'user' | where id = 1. Update username
// to value 'Linus Torvald'.
$ user -> update ([ ' username ' => ' Linus Torvald ' ], [ ' id ' => 1 ]);
// Get all data from Model 'User' | table 'user'.
$ user -> get ();
// Get 5 data results from Model 'User' | table 'user'.
$ user -> get ( 5 );
// Select all data from column 'username' of Model 'User' | table 'user'.
$ user -> select ( ' username ' )-> get ();
// Get data from column 'username' of Model 'User' | table 'user' | take 4 data results
// start from data number 2.
$ user -> range ( 4 , 2 )-> get ();
// Get data from Model 'User' | table 'user' | based on the clause 'WHERE id = 1'.
// You can do anything inside of 'clause()'.
$ user -> clause ( ' WHERE id = 1 ' )-> get ();
// Select data from column 'username' of Model 'User' | table 'user' |
// where id = 1 AND username = 'Linus Torvald'.
$ user -> where ([ ' id ' => 1 , ' username ' => ' Linus Torvald ' ])-> get ();
// Exec query.
// 'query' is anything sql queries such as 'DELETE * FROM' or 'SELECT *'.
$ user -> exec (query);
// Execute query with bind params (PDO prepare statement).
$ user -> execute (query, bindParams);
// You can custom you queries with chaining functions or methods like this:
$ user -> select ( ' username ' )-> range ( 4 , 2 )-> get ();
// Using prepare statement
$ user -> clause ( ' WHERE id=:id ' )-> bindParams ([ ' id ' => 1 ])-> get (); View S ditempatkan di worksheet/views . Pada dasarnya, View adalah templat, itu bisa kode HTML atau PHP. Tidak ada aturan khusus untuk View . Tapi, di Janggelan ekstensi View selalu .php . Anda dapat menulis kode apa pun di dalam View . Untuk menggunakan View , Anda hanya perlu menyebutnya. Contoh:
// Calling View 'example.php' on requests.php
// Note that you cannot calling View with Closure or Callback.
$ this -> request ( ' GET / (example) ' );
// Calling View 'example.php' inside folder 'new_folder' on requests.php
$ this -> request ( ' GET / (new_folder/example) ' );
// Calling View 'example.php' on Controller
$ this -> LOAD_VIEW ( ' example ' );
// Calling View 'example.php' inside folder 'new_folder' on Controller
$ this -> LOAD_VIEW ( ' new_folder/example ' ); Jika Anda ingin menempatkan View di luar worksheet/views ke mana -mana di dalam public atau public_html atau direktori www , Anda hanya perlu menambahkan / :
$ this -> request ( ' GET / (/example) ' );
$ this -> LOAD_VIEW ( ' /example ' ); Itu akan memberi tahu sistem untuk menemukan View di public/example.php atau public_html/example.php atau www/example.php .
Sekarang, cara menyampaikan data dalam View . Sebenarnya, Anda bisa melakukannya dengan sederhana. Just compact() data: Perhatikan bahwa data yang lewat hanya mungkin saat memanggil View oleh Controller .
$ data = ' This is data ' ;
$ this -> LOAD_VIEW ( ' example ' , compact ( ' data ' )); Kemudian, pada file View example.php , cukup panggil variabel:
<p> <?php echo $ data ; ?> </p> Janggelan menyediakan beberapa alat yang dapat Anda gunakan, dan mungkin berguna untuk kasus pengembangan Anda. Mereka ditempatkan di worksheet/tools . Untuk menggunakannya, hanya perlu memanggil nama kelas mereka. Contoh:
<?php namespace controller ;
use tool Validation ;
class Example extends framework parents Controller
{
private $ validation ;
function __construct ()
{
$ this -> validation = new Validation ;
}
} Protected Rule adalah sistem di Janggelan untuk melindungi page , View , atau Uri Anda, seperti halnya sistem login. Protected Rule disimpan data anonim yang selalu diperiksa saat request menggunakan sistem ini. Jika pengguna yang berkunjung tidak memiliki data anonim yang valid, pengguna akan diarahkan secara otomatis ke target yang telah ditentukan sebelumnya. Ini akan mudah Anda melindungi halaman yang ingin Anda buat pribadi atau hanya untuk pengguna tertentu.
Untuk membuat Protected Rule , buka file konfigurasi di backend/config/protected.php . Anda dapat membuat lebih dari satu Protected Rule . Contoh:
<?php return [
// FALSE means, system will uses SESSION to store protected_rule data. Set it TRUE
// if you want to store the data in COOKIE.
' use_cookie ' => FALSE ,
' protected_rule ' => [
// Creating 'Protected Rule' with name 'login'.
// If the data is not valid, then redirect to Controller 'Example'
// method 'protected.'
' login ' => [
' on_false ' => [
' controller ' => ' Example ' ,
' method ' => ' protected '
],
],
// Creating 'Protected Rule' with name 'protect'.
// If the data is not valid, then redirect to View 'example'.
' protect ' => [
' on_false ' => [
' view ' => ' example ' ,
],
],
// Creating 'Protected Rule' with name 'myRule'.
// If the data is not valid, then redirect to uri '/wrong'.
' myRule ' => [
' on_false ' => ' /wrong '
],
]
]; Kemudian, untuk menerapkan Protected Rule itu, pergi ke worksheet/requests.php , dan tambahkan Request baru: (sintaksnya adalah !! ):
// Applying Protected Rule 'login'.
$ this -> request ( ' GET / @Example::example !!login ' );
$ this -> request ( ' GET / (viewName) !!login ' );
$ this -> request ( ' GET / !!login ' , function ()
{
echo ' If you see this, then you are an Admin. ' ;
}); Bagaimana cara mengatur data yang valid untuk Protected Rule ? Cukup gunakan fungsi atau metode TI yang dibangun ini.
$ this -> SET_RULE ( $ name ); Anda juga dapat memberikan nilai ke data Protected Rule :
$ this -> SET_RULE ( $ name , $ values ); Berikut adalah fungsi atau metode lengkap untuk Protected Rule :
// Check valid data for user or 'Protected Rule';
$ this -> CHECK_RULE ( $ name );
// Set new valid data for user or 'Protected Rule'.
$ this -> SET_RULE ( $ name , $ data = '' );
// Get 'Protected Rule' data.
$ this -> GET_RULE ( $ name );
// Delete valid 'Protected Rule' data.
$ this -> DESTROY_RULE ( $ name ); Untuk mengonfigurasi database Anda, silakan buka backend/.secrets/.db . Berisi objek untuk mengonfigurasi database Anda:
{ "DB_HOST" : " " , "DB_NAME" : " " , "DB_USERNAME" : " " , "DB_PASSWORD" : " " }Atur pada setiap nilai kunci dengan konfigurasi basis data Anda.
Secara default, Janggelan divalidasi URI untuk direktori ada. Jika URI mengacu pada folder atau direktori ISSet, sistem Janggelan tidak akan dimulai, karena melalui dialihkan ke folder atau direktori itu. Jika Anda tidak ingin ini terjadi, buka file backend/force.uri , dan tulis ulang nilai lama ke TRUE .
Dali Kewara | [email protected]
Janggelan adalah kerangka kerja PHP bersumber terbuka yang dilisensikan di bawah lisensi MIT.