Jadilah kamu ingin kerangka php yang dibumbui dengan istilah bajak laut lokal?
Ini menjadi kerangka kerja tulang yang paling telanjang di tujuh laut!
http://bonemvc.delboysplace.co.uk
Tulang sekarang berada di v3.x! Seluruh kapal Deign O 'th' telah dirampingkan dan jauh lebih manoeuvrable! Kami menggunakan wadah injeksi ketergantungan PSR-11, ditambah dengan router middleware PSR-15, secara modular! Lompat di atas kapal!
Pertama, pastikan Anda memiliki komposer! Lalu pasang tulang.
composer create-project delboy1978uk/bonemvc your/path/here
atau jika Anda belum menginstal komposer secara global ...
php composer.phar create-project delboy1978uk/bonemvc your/path/here
Lihat di bawah untuk informasi tentang cara mendapatkan server dev lengkap menggunakan Docker
Anda dapat memasukkan sejumlah file .php ke dalam config/ folder. Pastikan mereka mengembalikan array dengan konfigurasi. Anda dapat mengganti konfigurasi berdasarkan lingkungan var application_env, jadi misalnya jika lingkungan produksi akan memuat konfigurasi tambahan subdirektori produksi.
Ada beberapa file konfigurasi secara default:
db.php
i18n.php
logs.php
mail.php
routes.php
templates.php
Di file konfigurasi Anda, Anda dapat menambahkan apa pun yang Anda inginkan. Itu disimpan di tulang mvc registry.
Atur kredensial DB default Anda di konfigurasi utama/db.php, dan konfigurasi khusus lingkungan dalam subdirektori
' db ' => array (
' host ' => ' 127.0.0.1 ' ,
' database ' => ' bone ' ,
' user ' => ' leChuck ' ,
' pass ' => ' bigWh00p ' ,
),Kemudian di pengontrol Anda, Anda bisa mendapatkan koneksi PDO dengan mengatakan:
$ this -> getDbAdapter (); Bone mendukung terjemahan ke berbagai daerah. File terjemahan (getText .po dan .mo ) harus ditempatkan dalam data/translations , di bawah subdirektori lokal, misalnya data/translations/en_GB/en_GB.po . Anda dapat mengatur lokal default dan serangkaian lokal yang didukung.
<?php
use Zend I18n Translator Loader Gettext ;
return [
' i18n ' => [
' translations_dir ' => ' data/translations ' ,
' type ' => Gettext::class,
' default_locale ' => ' en_PI ' ,
' supported_locales ' => [ ' en_PI ' , ' en_GB ' , ' nl_BE ' , ' fr_BE ' ],
],
];Untuk menggunakan penerjemah, Anda cukup menelepon: untuk menggunakan penerjemah, Anda cukup menelepon:
<?php
// from a controller:
$ this -> getTranslator ()-> translate ( ' placeholder.string ' );
// to set locale
$ this -> getTranslator ()-> setLocale ( $ locale );
// from a view file:
$ this -> t ( ' placeholder ' );Bone menggunakan monolog/monolog, dan log dapat ditemukan di data/log.
<?php
return [
' log ' => [
' channels ' => [
' default ' => ' data/logs/default_log ' ,
],
],
];Untuk menggunakan logger di pengontrol:
$ this -> getLog ()-> debug ( $ message ) // or error(), etc, see PSR-3 Tulang menggunakan Zend Mail. Untuk mengonfigurasi klien email, cukup masukkan ke konfigurasi Anda (lihat dokumen Zend Mail)
<?php
return [
' mail ' => [
' name ' => ' 127.0.0.1 ' ,
' host ' => ' localhost ' ,
' port ' => 25 ,
// 'connection_class' => 'login', // plain, login, crammd5
// 'connection_config' => [
// 'username' => 'user',
// 'password' => 'pass',
// ],
],
];Jika Anda menggunakan kotak Docker yang disediakan oleh Bone, Anda juga memiliki Mailhog yang luar biasa yang Anda inginkan. Jelajahi ke luar biasa.scot:8025 dan Anda akan melihat kotak masuk Catch All Email, jadi Anda tidak perlu khawatir tentang pengembangan email yang mencapai dunia nyata.
Modul dapat dibuat di folder src/ Anda. Modul default adalah BoneAppAppPackage . Modul diaktifkan dengan menambahkannya di config/packages.php . Paket vendor juga dapat diinstal melalui komposer dan diaktifkan dengan cara yang sama.
Modul paling tidak akan mengimplementasikan BarnacleRegistrationInterface , dan jika itu adalah modul MVC yang berisi rute maka ia juga harus menerapkan BoneRouterRouterConfigInterface . Ada empat metode untuk diimplementasikan:
hasEntityPath(): bool , jika modul Anda menggunakan entitas doktrin yang dikembalikan true (membutuhkan paket delboy1978uk/bone-doctrine )getEntityPath(): string , jika Anda mengembalikan true, ini adalah folder kelas entitas Anda berada.addToContainer(Container $c) , dijelaskan di bawah iniaddRoutes(Container $c, Router $router): Router , dijelaskan di bawah ini Anda dapat membuat pabrik untuk kelas Anda dan menginisialisasi apa pun yang diperlukan di tempat lain di aplikasi Anda. Sebagai contoh, kelas pengontrol mungkin ingin mesin tampilan disuntikkan, jadi dalam metode Anda akan menambahkan yang berikut:
$ c [MyController::class] = $ c -> factory ( function ( Container $ c ) {
$ view = $ c -> get (PlatesEngine::class);
return new MyController ( $ view );
}); Wadah injeksi ketergantungan adalah delboy1978uk/barnacle , yang pada dasarnya menjadi jerawat diperluas dan menerapkan PSR-11.
Bone MVC menggunakan league/route , perpustakaan middleware PSR-15. Rute ditambahkan dalam paket Anda seperti SO:
/**
* @param Container $c
* @param Router $router
* @return Router
*/
public function addRoutes ( Container $ c , Router $ router ): Router
{
$ router -> map ( ' GET ' , ' / ' , [IndexController::class, ' indexAction ' ]);
$ router -> map ( ' GET ' , ' /learn ' , [IndexController::class, ' learnAction ' ]);
return $ router ;
}Lihat dokumen mereka untuk info lebih lanjut tentang penggunaan router
Avast kamu! Kami menggunakan beberapa lib tambahan oleh cap'n (delboy1978uk), yaitu:
delboy1978uk/cdn
delboy1978uk/form
delboy1978uk/generator
delboy1978uk/image
delboy1978uk/session
Fer cdn lib, kamu dapat dengan cepat menggemakan javascript dan css menggunakan DelCdn , lihat AppViewlayoutsbonemvc.php fer contoh.
Lihat juga Gunakan DelIcon dan DelCss , yang datang sebagai bagian dari CDN Lib.
Anda dapat membuat formulir siap bootstrap khusus menggunakan delboy1978uk/form , lihat detail halaman github.
Anda dapat dengan cepat membuat modul baru menggunakan perintah CLI generator.
Anda dapat memanipulasi gambar menggunakan fungsi PHP GD, dengan kelas DelImage .
Anda dapat mengatur variabel sesi menggunakan DelSessionManager , lihat GitHub untuk info.