استخدم تطبيق الهيكل العظمي هذا لإعداد بسرعة وبدء العمل على تطبيق Slim Framework 3 الجديد (تم اختباره باستخدام Slim 3.12). يتولى هذا التطبيق طلبات HTTP وطلب سطر الأوامر. يشحن هذا التطبيق مع عدد قليل من مقدمي الخدمات ودورة الوسيطة للجلسة خارج المربع. دعم دقة الحاويات والأسلاك التلقائية.
لإزالة موفر خدمة التعليق على ملف config/app.php وإزالته من composer.json ، تحديث الملحن.
مقدمي الخدمات المتاحين:
البرامج الوسيطة المتاحة:
قم بتشغيل هذا الأمر من الدليل الذي تريد تثبيت تطبيق Slim Framework الجديد.
php composer.phar create-project jupitern/slim3-skeleton [my-app-name]
استبدل [my-app-name] باسم الدليل المطلوب لتطبيقك الجديد. سترغب في:
public/ الدليل الجديد للتطبيق الجديد.storage/ هو على شبكة الإنترنت.$ cd [my-app-name]public$ php -S localhost:8080 أو $ composer serveapp : رمز التطبيق (النماذج ، وحدات التحكم ، وأوامر CLI ، والمعالجات ، والوسيط ، ومقدمي الخدمات وغيرهم)config : ملفات التكوين مثل DB والبريد والطرق ...lib : فصول مشاريع أخرى مثل UTILS ومنطق الأعمال والملحقات الإطاريةstorage : سجلات السجل وملفات ذاكرة التخزين المؤقت وأصولك الخام أو غير المنقوشة مثل أقل أو Sass أو JavaScript.public : يحتوي الدليل العام على ملف index.php ، والأصول مثل الصور ، و javaScript ، و CSSviews : ملفات عرض ملفات.vendor : تبعيات الملحنتحتوي فئة التطبيق على طريقة حل الطريق:
مثال على تحديد طريقين لموقع ويب ومجلدات خلفية:
use Psr Http Message ServerRequestInterface as Request ;
use Psr Http Message ResponseInterface as Response ;
// simple route example
$ app -> get ( ' /welcome/{name} ' , function ( Request $ request , Response $ response , $ args ) {
$ name = $ request -> getAttribute ( ' name ' );
$ response -> getBody ()-> write ( " Hello, $ name " );
return $ response ;
});
// example route to resolve request to uri '/' to AppHttpSiteWelcome::index
$ app -> any ( ' / ' , function ( $ request , $ response , $ args ) use ( $ app ) {
return $ app -> resolveRoute ([ App Http Welcome::class, " index " ], $ args );
});
// example calling http://localhost:8080/index.php/test/nuno with the route bellow
// injects the :name param value into the method $name parameter
// Other parameters in the method will be searched in the container by classname or automatically resolved
// in this example the resolveRoute method will create a user instance and inject it in the controller method
$ app -> any ( ' /test[/{name}] ' , function ( $ request , $ response , $ args ) use ( $ app ) {
return $ app -> resolveRoute ([ App Http Welcome::class, " method " ], $ args );
});
namespace App Http ;
use Jupitern Slim3 App Http Controller ;
class Welcome extends Controller
{
public function method ( $ name , App Model User $ user )
{
return get_class ( $ user ). " <br/>name = { $ name }" ;
}
}كيفية إنشاء أمر جديد:
مثال:
فئة القيادة:
namespace App Console ;
class Test extends Command
{
public function method ( $ a , $ b = ' foobar ' )
{
return
"n Entered console command with params: n" .
" a= { $ a }n" .
" b= { $ b }n" ;
}
}تنفيذ الفصل: الطريقة من سطر الأوامر:
// since param "b" is optional you can use one of the following commands
> php cli.php Test method a=foo b=bar
> php cli.php Test method a=fooالحصول على مثيل التطبيق
$ app = Lib Framework App:: instance ();
// or simpler using a helper function
$ app = app ();تصحيح متغير أو صفيف أو كائن باستخدام وظيفة مساعد التصحيح
debug ([ ' a ' , ' b ' , ' c ' ]);
// or debug and exit passing true as second param
debug ([ ' a ' , ' b ' , ' c ' ], true );اقرأ مستخدمًا من DB باستخدام مزود خدمة Laravel Boxyent
$ user = App Model User:: find ( 1 );
echo $ user -> Name ;أرسل بريدًا إلكترونيًا باستخدام خدمة مزود خدمة phpmailer المسمى "البريد" على ملف التكوين
/* @var $mail PHPMailerPHPMailerPHPMailer */
$ mail = app ()-> resolve ( ' mail ' );
$ mail -> addAddress ( ' [email protected] ' );
$ mail -> Subject = " test " ;
$ mail -> Body = " <b>test body</b> " ;
$ mail -> AltBody = " alt body " ;
$ mail -> send ();اذكر محتوى الدليل مع مزود خدمة FlySystem المسمى "FS_LOCAL" على ملف التكوين
$ filesystem = app ()-> resolve ( ' fs_local ' );
$ contents = $ filesystem -> listContents ( STORAGE_PATH , true );
var_dump ( $ contents );اكتب وقراءة من الجلسة باستخدام فئة مساعد الجلسة
// save user info in session
Jupitern Slim3 Utils Session:: set ( ' user ' , [ ' id ' => ' 1 ' ]);
// get user info from session
$ uservar = Jupitern Slim3 Utils Session:: get ( ' user ' );
var_dump ( $ uservar );اكتب وقراءة من ذاكرة التخزين المؤقت مع مزود خدمة Redis المسمى "Redis" على ملف التكوين
/** @var JupiternSlim3UtilsRedis $cache */
$ cache = app ()-> resolve ( ' redis ' );
$ cache -> set ( " cacheKey " , " some test value " );
echo $ cache -> get ( " cacheKey " );v3.0
v2.6
v2.5
يتم إطلاق jupitern/slim3-skyleton تحت رخصة معهد ماساتشوستس للتكنولوجيا.