ใช้แอปพลิเคชันโครงกระดูกนี้เพื่อตั้งค่าอย่างรวดเร็วและเริ่มทำงานกับแอปพลิเคชัน Slim Framework 3 ใหม่ (ทดสอบด้วย Slim 3.12) แอปพลิเคชันนี้จัดการคำขอ HTTP และบรรทัดคำสั่ง แอปพลิเคชันนี้จัดส่งพร้อมผู้ให้บริการบางรายและมิดเดิลแวร์เซสชันนอกกรอบ รองรับความละเอียดของคอนเทนเนอร์และการเดินสายอัตโนมัติ
หากต้องการลบความคิดเห็นของผู้ให้บริการในไฟล์ config/app.php และลบออกจาก composer.json ให้อัปเดต Composer
ผู้ให้บริการที่มีอยู่:
มิดเดิลแวร์ที่มีอยู่:
เรียกใช้คำสั่งนี้จากไดเรกทอรีที่คุณต้องการติดตั้งแอปพลิเคชัน 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, Business Logic และ Framework Extensionsstorage : บันทึกไฟล์ไฟล์แคชและสินทรัพย์ดิบที่ไม่ได้รวบรวมเช่นน้อยกว่า, Sass หรือ JavaScriptpublic : ไดเรกทอรีสาธารณะมีไฟล์ 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 );อ่านผู้ใช้จากฐานข้อมูลโดยใช้ผู้ให้บริการ Laravel Eloquent
$ user = App Model User:: find ( 1 );
echo $ user -> Name ;ส่งอีเมลโดยใช้บริการผู้ให้บริการ phpmailer ชื่อ 'mail' ในไฟล์ config
/* @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' บนไฟล์ config
$ filesystem = app ()-> resolve ( ' fs_local ' );
$ contents = $ filesystem -> listContents ( STORAGE_PATH , true );
var_dump ( $ contents );เขียนและอ่านจากเซสชันโดยใช้คลาส Helper Session
// 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' ในไฟล์ config
/** @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-Skeleton เปิดตัวภายใต้ใบอนุญาต MIT