Simple هو مشروع يجمع مجموعة من الحزم للعمل مع PHP بسرعة وأقل. أقل أكثر!
لبدء استخدام واحد بسيط يمكنك استخدام الأمر:
$ composer create-project phpzm/simplesأو قم بعمل نسخة من Master White Master
$ git clone https://github.com/phpzm/simples.git < dir >
$ cd < dir >
$ rm .git
$ composer installلقد قمت بالفعل بتنزيل بنية أساسية بالفعل ، وتحتاج إلى إعداد بعض التفاصيل للخروج باستخدام ميزات أساسية سعيدة لموقع أو نظام PHP.
يتم توجيه الإعدادين المتاحين كقاعدة سنذكر أدناه إلى عنوان URL نفسه: http://localhost:8080 قبل بدء أي من أوضاع الخادم ، قم بعمل نسخة من ملف .env المتاح مع المشروع
$ composer run env:initينشئ نسخة من ملف المثال الذي يتم توفيره مع المشروع
$ composer run docker:initبعد ذلك ، يمكنك استخدام الأمر الذي يتم استخدامه لتشغيل الحاويات أو استخدامه
$ composer run docker:serve --timeout=0لاستخدام خادم التطوير الذي يأتي مع PHP استخدم الأوامر أدناه
$ composer run php:serve --timeout=0 سارت الأمور على ما يرام ، عند الوصول إلى عنوان URL http://localhost:8080 سترى بالفعل صفحة العرض التقديمي الافتراضي لدينا
حسنًا ، عنوان URL الذي يجب أن يعمل على ما يرام ، ولكن دعنا ننشئ نظرة عامة على ما حدث لها لتشغيلها.
ستجد في هذا المجلد نقطة الدخول الوحيدة للطلبات التي سيكون بها طلبك. عند فتح ملف index.php الذي يحتوي على داخله ، نجد التفاعل الأول مع الملفات البسيطة. بالإضافة إلى ملف PHP ، هناك أيضًا ملفات ندعوها عادةً assets . إنها الصور وملفات النمط والميزات المستخدمة لتحسين تصور موارد التطبيق. سيتم استخدام هذا المجلد لترك المستندات المكشوفة التي يمكن لأي شخص الوصول إليها.
يحتوي هذا الدليل على قائمة ملفات PHP المستخدمة لتكوين سلوكيات التطبيق. أثناء إلقاء نظرة على هذه الملفات ، سترى أن هناك وظيفة تسمى env تستخدم لتحديد بعض الخصائص. هذه الوظيفة تستعيد القيم المحددة في .env .
وأخيرا وصلنا حيث يحدث الحزب. يأتي Simples مع الإعدادات الصحيحة لاستخدام هذا الدليل للتشاور مع المستندات التي ستنشئها. كما يمكنك أن تفعل الكثير ، نقسم كل شيء إلى أجزاء.
يضم الوثائق المتعلقة بتكوين الموارد بشكل غير مباشر. تم تكوينه مبدئيًا باستخدام 3 أدلة (البريد الإلكتروني ، اللغات ، العرض) ، ولكن يمكنك زراعتها مريحة. يمكنك أن ترى في ملف config/app.php تعليمات التكوين مماثلة لتلك أدناه. استنادًا إلى المثال ، يمكننا استخدام config('app.resources.root') بأن قيمة app/resources سيتم إرجاعها وهذا هو مدى بساطة الميزات التي يستخدمها.
[config/app.php]
<?php
( . . . )
' resources ' => [
' root ' => ' app/resources ' ,
]
(...) سنرى المزيد حول هذا الجزء من views واستخدامها لقسم القالب.
هذا مسار مقترح لاستخدام الطرق. يتم وصفه في config/route.php حيث يمكنك إدخال مجموعة ملفات سيتم تهيئتها لتكوين طرق التطبيق.
[config/route.php]
<?php
( . . . )
' files ' => [
' app/routes/index.php '
]
(...) لذلك ، عند إرسال طلب HTTP إلى public/index.php ، سيبدأ البحث عن الطرق في ملف app/routes/index.php . في وقت لاحق ، في قسم إنشاء المسار ، سنرى كيفية إنشاء طرق بطريقة منظمة باستخدام البسيط.
يرتبط هذا المجلد مباشرة بـ Composer autoloader من خلال التكوين على composer.json
[composer.json]
(...)
"autoload": {
"psr-4": {
"App\": "app/src/"
}
}
(...)
أي أن المساحة القياسية التي ستستخدمها هي App ويجب أن يكون الملف ضمن المجلد الموضح أعلاه. من الواضح أنه يمكنك تعديل هذا. لاحظ أنه باستخدام اتفاقية PSR-4 عند إنشاء مستند مع namespace المناسبة ، يمكنك استخدامه بشفافية. سوف نخوض مزيد من التفاصيل حول هذا في قسم التكوين الهيكلي.
كوسيلة للإشارة إلى مسار أولي ، نقترح هذا المجلد الذي يسمى storage في جذر المشروع للحفاظ على المستندات التي لا يمكن أن تكون مفتوحة للوصول العام.
يتم إنشاء مجلد vendor تلقائيًا بواسطة Composer . يحتوي على التبعيات التي سيستخدمها مشروعك وإعدادات تحميل الملفات. تم تكوينه افتراضيًا في ملف .gitignore الذي يتم تجاهله بواسطة Git
التكوين الذي سيتم استدعاء المسار الأول (أو الذي سيتم استدعاؤه على الطرق الأولى) هو الافتراضي في app/config/route.php .
يمكن إجراء إعدادات الوصول إلى موارد التطبيق في ملفات الطريق. يمكن كتابة الأوامر مباشرة على ملف الملف (حيث سيكون متغير جهاز التوجيه $ متاحًا لأسباب النطاق) أو باستخدام إغلاق عمليات الإغلاق التي تتلقى جهاز توجيه $ كمعلمة.
طرق بسيطة
return function ( $ router ) {
$ router -> on ( ' GET ' , ' / ' , function () {
return ' Hello World! ' ;
});
}الطرق الديناميكية
return function ( $ router ) {
$ router -> get ( ' /:controller/:method ' , function ( $ controller , $ method ) {
return ' Hello World! ' ;
});
}مجموعات روتا
return function ( $ router ) {
// lista com arquivos de rota
$ router -> group ( ' GET ' , ' /site ' , [ ' more/files/routes.php ' , ' more/files/site.php ' ]);
// pasta que contém arquivos de rotas
$ router -> group ( ' * ' , ' /api ' , ' api/routes ' );
}الطرق مع التفاعل مع وحدة التحكم
return function ( $ router ) {
$ router -> post ( ' /client/save ' , ' NamespaceClientController@save ' );
$ router -> resource ( ' client ' , ' NamespaceClientController ' );
} سيتم إنشاء $router->resource :
| الفعل | طريق | فعل | اسم الطريق |
|---|---|---|---|
| يحصل | /route | فِهرِس | route.index |
| يحصل | /route/create | يخلق | الطريق |
| يحصل | /route/{id} | يعرض | الطريق |
| يحصل | /route/{id}/edit | يحرر | Route.Edit |
| بريد | /route | الستير متر مكعب | الطريق |
| ضع/تصحيح | /route/{id} | تحديث | الطريق |
| يمسح | /route/{id} | تدمير | الطريق |