Slimフレームワーク学習、初日
4680 ワード
index.php分析
indexファイルは初めて認識し、各文の背後にある意味を分析します.
詳細な分析
require ‘vendor/autoload.php’;
主な利用はspl_autoload_registerは、必要なクラスを自動的にロードします.この方法は,後で特集して述べる
$app = new Slim\App();
主にAppクラスがインスタンス化されており、コードは以下の通りです.上記から分かるように、Appクラスをインスタンス化する際には、主にContainerオブジェクトがインスタンス化され、属性としてAppオブジェクトに が保存されている.なお、この場合のAppオブジェクトはpsr 7モードで実現される(値オブジェクト)$app->get()解析である
ルーティングを設定し、コンテナに登録するには、次の2つのコードが含まれます.
####注意点:
今日は先にここに来て、明日は続きます.
indexファイルは初めて認識し、各文の背後にある意味を分析します.
require 'vendor/autoload.php'; // , spl_register()
$app = new Slim\App(); // App
$app->get('/hello/{name}',function($request,$response,$args){
return $response->write("Hello," . $args['name']);
}); // get
$app->run();
詳細な分析
require ‘vendor/autoload.php’;
主な利用はspl_autoload_registerは、必要なクラスを自動的にロードします.この方法は,後で特集して述べる
$app = new Slim\App();
主にAppクラスがインスタンス化されており、コードは以下の通りです.
public function __construct($container = [])
{
if (is_array($container)) {
$container = new Container($container);
}
if (!$container instanceof ContainerInterface) {
throw new InvalidArgumentException('Expected a ContainerInterface');
}
$this->container = $container;
}
ルーティングを設定し、コンテナに登録するには、次の2つのコードが含まれます.
public function get($pattern, $callable)
{
return $this->map(['GET'], $pattern, $callable);
}
public function map(array $methods, $pattern, $callable)
{
if ($callable instanceof Closure) {
$callable = $callable->bindTo($this->container); //Closure::bindTo — , $this 。
}
$route = $this->container->get('router')->map($methods, $pattern, $callable);
if (is_callable([$route, 'setContainer'])) {
$route->setContainer($this->container);
}
if (is_callable([$route, 'setOutputBuffering'])) {
$route->setOutputBuffering($this->container->get('settings')['outputBuffering']);
}
return $route;
}
####注意点:
if ($callable instanceof Closure) {
$callable = $callable->bindTo($this->container); //Closure::bindTo — , $this 。
}
今日は先にここに来て、明日は続きます.