PHP Slim 框架初體驗之無法訪問控制器


話不多說,先把報錯貼出來:

剛開始用slim框架,在設置完自動加載文件和路由文件之后,我寫了一個控制器:

<?php
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;
use \interop\Container\ContainerInterface;

class HomeController 
{
    protected $app;

    public function __construct(ContainerInterface $ci)
    {
        $this->app = $ci;
    }

    public function index(Request $request, Response $response, $args)
    {
        echo '恭喜你訪問成功';
    }
}

並且設置了路由,將路由中的index指向Home控制器中的index方法:

$app->get('/index', 'HomeController:index');

本來想當我訪問http://localhost/slimtest1/public/index.php/index 的時候,應該打印出index方法里面的文字才對

沒想到報了開頭我貼出來的錯誤。

搞了好久才發現原來是我的composer.json里面沒有指定自動加載路徑,所以我增加了下面一段代碼:

{
    "require": {
        "slim/slim": "^3.0"
    },
    "autoload": { "classmap" : [ "app/controllers" ] }
}

上述陰影部分為新增加的代碼,指定控制器去app/controllers文件夾下面加載。

然后執行composer install 更新一下就好了。

成功結果:

 

總結原因就是我對composer這種開發模式不太了解。不清楚如何對composer.json文件進行管理


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM