Slim フレームワークで PHP クラスのスコープ内の関数にアクセスできないようです。
<?php
class Controller {
private $app;
public function __construct() {
$this->app = new Slim();
$this->app->get('/', $this->home);
$this->app->run();
}
public function home() {
echo 'hi';
}
}
これにより、次のエラーが発生します。
致命的なエラー: /Users/Oliver/Dropbox/Sites/grapevine/application/controller.php:9 のメッセージ「未定義のプロパティ: Controller::$home」を含むキャッチされない例外「ErrorException」 スタック トレース: #0 /Users/Oliver/Dropbox /Sites/grapevine/application/controller.php(9): Slim::handleErrors(8, 'Undefined prope...', '/Users/Oliver/D...', 9, Array) #1 /Users/ Oliver/Dropbox/Sites/grapevine/public/index.php(14): Controller->__construct() #2 {main} が 9 行目の /Users/Oliver/Dropbox/Sites/grapevine/application/controller.php でスローされました
私は代わりにこれをやってみました:
$this->app->get('/', $this->home());
ただし、ルーティングは無視され、「/」だけでなく「hi」がすべてのページに表示されます。