كن أيها تريد إطار عمل php مع لغة القراصنة المحلية؟
يكون إطار العظام الأكثر عارية في البحار السبعة!
http://bonemvc.delboysplace.co.uk
Bone الآن على v3.x! لقد تم تبسيط سفينة Deign O 'th' وأكون أكثر بكثير من خلال المناورة! نحن نكون حاوية حقن التبعية PSR-11 ، إلى جانب جهاز توجيه الوسيطة PSR-15 ، بطريقة معيارية! القفز على متن الطائرة!
تأكد أولاً من أن لديك ملحن! ثم تثبيت العظام.
composer create-project delboy1978uk/bonemvc your/path/here
أو إذا لم تكن قد قمت بتثبيت الملحن على مستوى العالم ...
php composer.phar create-project delboy1978uk/bonemvc your/path/here
انظر أدناه للحصول على معلومات حول كيفية الحصول على خادم Dev كامل باستخدام Docker
يمكنك إسقاط أي عدد من ملفات .php في المجلد/ المجلد. تأكد من إرجاع مجموعة مع التكوين. يمكنك تجاوز التكوين استنادًا إلى البيئة var application_env ، لذلك على سبيل المثال إذا كانت البيئة هي الإنتاج ، فستقوم بتحميل التكوين الإضافي في الدليل الفرعي للإنتاج.
هناك العديد من ملفات التكوين افتراضيًا:
db.php
i18n.php
logs.php
mail.php
routes.php
templates.php
في ملفات التكوين الخاصة بك ، يمكنك إضافة أي شيء تريده. يتم تخزينه في العظام mvc التسجيل.
قم بتعيين بيانات اعتماد DB الافتراضية في التكوين الرئيسي/db.php ، وأي تكوينات محددة للبيئة في دليل فرعي
' db ' => array (
' host ' => ' 127.0.0.1 ' ,
' database ' => ' bone ' ,
' user ' => ' leChuck ' ,
' pass ' => ' bigWh00p ' ,
),ثم في وحدة التحكم في YER ، يمكنك الحصول على اتصال PDO بالقول:
$ this -> getDbAdapter (); العظام تدعم الترجمة إلى أماكن مختلفة. يجب وضع ملفات الترجمة (getText .po و .mo ) في data/translations ، تحت دليل فرعي للموقع ، على سبيل المثال data/translations/en_GB/en_GB.po . يمكنك ضبط اللغة الافتراضية ومجموعة من اللغات المدعومة.
<?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 ' ],
],
];لاستخدام المترجم ، يمكنك ببساطة الاتصال: لاستخدام المترجم ، يمكنك ببساطة الاتصال:
<?php
// from a controller:
$ this -> getTranslator ()-> translate ( ' placeholder.string ' );
// to set locale
$ this -> getTranslator ()-> setLocale ( $ locale );
// from a view file:
$ this -> t ( ' placeholder ' );يستخدم Bone Monolog/Monolog ، ويمكن العثور على سجلات في البيانات/السجلات. في الوقت الحالي ، ندعم الكتابة فقط إلى الملفات ، ولكن يمكنك إضافة العديد من القنوات كما تريد:
<?php
return [
' log ' => [
' channels ' => [
' default ' => ' data/logs/default_log ' ,
],
],
];لاستخدام المسجل في وحدة تحكم:
$ this -> getLog ()-> debug ( $ message ) // or error(), etc, see PSR-3 يستخدم Bone Zend Mail. لتكوين عميل البريد ، ما عليك سوى إسقاط التكوين الخاص بك (انظر مستندات البريد Zend)
<?php
return [
' mail ' => [
' name ' => ' 127.0.0.1 ' ,
' host ' => ' localhost ' ,
' port ' => 25 ,
// 'connection_class' => 'login', // plain, login, crammd5
// 'connection_config' => [
// 'username' => 'user',
// 'password' => 'pass',
// ],
],
];إذا كنت تستخدم مربع Docker الذي توفره Bone ، فلديك أيضًا MailHog الرائع تحت تصرفك. تصفح إلى Awesome.scot:8025 وسترى صندوقًا للوارد في جميع أنحاء البريد الإلكتروني ، لذلك لا داعي للقلق أبدًا بشأن تنمية رسائل البريد الإلكتروني التي تصل إلى العالم الحقيقي.
يمكن إنشاء الوحدات النمطية في مجلد src/ المجلد. الوحدة الافتراضية هي BoneAppAppPackage . يتم تمكين الوحدات النمطية عن طريق إضافتها في config/packages.php . يمكن أيضًا تثبيت حزم البائع عبر الملحن وتمكينه بنفس الطريقة.
ستنفذ الوحدة النمطية على الأقل BarnacleRegistrationInterface ، وإذا كانت وحدة MVC تحتوي على طرق ، فيجب أن تنفذ أيضًا BoneRouterRouterConfigInterface . هناك أربع طرق في كل شيء للتنفيذ:
hasEntityPath(): bool ، إذا كانت الوحدة الخاصة بك تستخدم كيانات العقيدة تعود صحيحًا (تتطلب حزمة delboy1978uk/bone-doctrine )getEntityPath(): string ، إذا قمت بإرجاع صحيح ، فهذا هو المجلد الموجود في فئة الكيان الخاصة بك.addToContainer(Container $c) ، الموضحة أدناهaddRoutes(Container $c, Router $router): Router ، الموضح أدناه يمكنك إنشاء مصانع لفصولك وتهيئة أي شيء مطلوب في أي مكان آخر في تطبيقك. على سبيل المثال ، قد ترغب فئة وحدة التحكم في حقن محرك العرض ، لذلك في الطريقة التي ستضيف بها ما يلي:
$ c [MyController::class] = $ c -> factory ( function ( Container $ c ) {
$ view = $ c -> get (PlatesEngine::class);
return new MyController ( $ view );
}); حاوية حقن التبعية هي delboy1978uk/barnacle ، والتي تمتد بشكل أساسي وتنفيذ PSR-11.
تستخدم Bone MVC league/route ، وهي مكتبة PSR-15 الوسيطة. تتم إضافة الطرق في الحزمة الخاصة بك مثل:
/**
* @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 ;
}شاهد مستنداتهم لمزيد من المعلومات حول استخدام جهاز التوجيه
أفاست يي! نحن نكون "بعض libs الإضافية من قبل 'cap'n (delboy1978uk) ، وهي:
delboy1978uk/cdn
delboy1978uk/form
delboy1978uk/generator
delboy1978uk/image
delboy1978uk/session
Fer the CDN lib ، يمكنك أن تتردد بسرعة javaScript و CSS باستخدام DelCdn ، انظر AppViewlayoutsbonemvc.php fer مثال.
انظر أيضًا استخدام DelIcon و DelCss ، والتي تأتي كجزء من LIB CDN.
يمكنك إنشاء نماذج جاهزة للمحاذاة usin ' delboy1978uk/form ، راجع تفاصيل صفحة github.
يمكنك أن تصنع سرعان ما تقوم بوحدة جديدة usin 'th' generator cli.
يمكنك معالجة الصور usin 'th' gd php ، مع فئة DelImage .
يمكنك تعيين متغيرات الجلسة usin ' DelSessionManager ، انظر Github للحصول على معلومات.