Slim Framework 2
我最近發布了 Slim Framework 2,這與先前的版本有許多不同之處。版本 2 遵守 PSR-2 規範,並使用 PHP 名稱空間。它需要使用 PHP 5.3 或更新版本。
與未來接軌
PHP 語言及其社群正處於變革期。PHP Framework Interop 組織已經發布推薦編碼風格,並針對單一構架鼓勵使用元件函式庫。Slim,就像其他 PHP 函式庫,正在採用最嚴謹的標準。這樣的變更讓其他開發人員可以輕鬆閱讀 Slim 的程式碼基礎並提供建議改進。
Slim Framework 也使用 PHP 名稱空間。名稱空間讓您不再需要使用長而繁瑣的 PEAR 風格類別名稱 (例如:Slim_Middleware_ContentTypes),同時仍避免與其他函式庫類別名稱衝突。這是一件好事。版本 2 使用「Slim」廠商名稱空間。例如,將 ContentTypes 中介軟體加入 Slim Framework 應用程式的程式碼為
$app = new \Slim\Slim();
$app->add(new \Slim\Middleware\ContentTypes());
名稱空間以廠商名稱空間(「\Slim」)開始,並以所需類別名稱的名稱空間路徑結尾。PHP 名稱空間可能類似於 PHP 類別的虛擬目錄結構。
有什麼新事物?
版本 2 遵守 PSR-2 規範,並使用 PHP 名稱空間。這些變更為未來的發展提供了一個新的基礎。
如何安裝版本 2
使用 Composer 安裝
建議使用 Composer 安裝 Slim Framework。Composer 是 PHP 的套件管理員 (類似於 Node 的 npm)。有了 Composer,您即可輕鬆宣告和自動載入專案的相依項,而不用擔心撰寫或註冊自有的自動載入程式。相信我,Composer 真的非常厲害,而且很值得您花時間學習。它徹底改變了我開發 PHP 應用程式的方式 (變得更好)。
例如,假設您想用 Slim 2 和 Twig 建立一個新的 PHP 應用程式。首先,使用此 bash 命令,在專案根目錄中安裝 Composer
curl -s https://composer.dev.org.tw/installer | php
接著,建立一個 composer.json
檔案,用來宣告專案相依項 (Slim 和 Twig)
{
"require": {
"slim/slim": "2.*",
"twig/twig": "1.*"
}
}
接著,使用 Composer 透過此 bash 命令來安裝專案相依項。這將會下載宣告於 composer.json
中的相依項,並放入 vendor/
目錄中
php composer.phar install
最後,將此行加入應用程式的 index.php 檔案,讓 Composer 自動載入專案相依項
require 'vendor/autoload.php';
手動安裝
您也可以手動安裝 Slim Framework
- 下載並解壓縮 Slim Framework ZIP 檔案。
- 複製
Slim/
目錄到您的專案。 - 在應用的
index.php
檔案中載入 Slim 類別。 - 使用
\Slim\Slim::registerAutoloader()
註冊 Slim 的內建自動載入程式。
這裡是一個使用手動安裝的 index.php
檔案範例
require 'Slim/Slim.php';
\Slim\Slim::registerAutoloader();
$app = new \Slim\Slim();
$app->get('/hello/:name', function ($name) {
echo "Hello, $name";
});
$app->run();
如何升級舊的應用程式
升級 Slim 框架
遵循上述的手動安裝說明,並將舊的 Slim 框架函式庫替換為版本 2。請務必註冊 Slim 的內建自動載入程式。
使用命名空間
將所有 Slim 框架類別名稱替換為它們的命名空間等效名稱。例如,當您要實例化一個 Slim 框架應用程式時,請將這個
$app = new Slim();
替換成這個
$app = new \Slim\Slim();
如果您要新增中間件,請執行相同的作業。例如,如果您使用 Slim_Middleware_ContentTypes 中間件,請像下面這樣將它替換為命名空間版本
$app = new \Slim\Slim();
$app->add(new \Slim\Middleware\ContentTypes());
您需要在您的程式碼中任何您參照 Slim 專屬類別名稱的地方進行這個變更。
結束
我知道這是一個重大的變更。但是,我相信這個變更將為 Slim 框架帶來一個更美好、更光明的未來。如果您在版本 2 中遇到任何問題,請在 Slim 框架支援論壇上發問。我和其他許多 Slim 框架使用者都準備好且願意幫助回答您的問題。