Lumenでroutingがうまくいかない

PHPのマイクロフレームワーク Lumenを使ってAPIを作る方法をUdemyというE-learningのサイトで勉強中です。

Create Fast RESTful APIs with Lumen and Homestead by Laravel

開発はVagrantを使わずMAMPでやっていたのですがうまくいかず。

目次

localhost/LumenAPI/public/teachers

ブラウザから下記のURLをたたくと、
localhost/LumenAPI/public/teachers

こんなエラーが

Sorry, the page you are looking for could not be found.
NotFoundHttpException in Application.php line 1264:
in Application.php line 1264
at Application->handleDispatcherResponse(array(‘0’)) in Application.php line 1219
at Application->Laravel\Lumen\{closure}() in Application.php line 1454
at Application->sendThroughPipeline(array(), object(Closure)) in Application.php line 1221
at Application->dispatch(null) in Application.php line 1161
at Application->run() in index.php line 28

書いているのは、

/Http/routes.phpに

$app->get('/teachers', 'TeacherController@index');
$app->post('/teachers', 'TeacherController@store');

/Http/Controllers/TeacherController.phpに

class TeacherController extends Controller;
{
	public function index()
	{
		return __METHOD__;
	}

としています。

localhost/lumenAPI/teachers

ちなみに、publicをなくすと、

localhost/lumenAPI/teachers

Not Foundエラーです。

php artisan route:list

いろいろしらべていると、

php artisan route:list

とターミナルから入れるとroutingが調べられるとわかりました。

しかし、これはLaravelではあったけどLumenでは削除されているようです。

が、しかし、Lumenでもartisan route:listコマンドを追加する方法がQitaにありました。

Lumenで省かれたartisan route:listコマンドを追加する方法 – Qiita

こちらがgithub

GitHub – appzcoder/lumen-route-list: Lumen Route List Show

使いかたは、

composer require appzcoder/lumen-routes-list

をした後、

/bootstrap/app.php

に、

$app->register(Appzcoder\LumenRoutesList\RoutesCommandServiceProvider::class);

と書けば良いそうな。

まとめ

lumenにroute:listコマンドを追加する方法は、appを上書きしてしまうとのことなのでまだ試していません。

というのも、明日にLaravelもくもく会があるので、そこで誰かにきくことができそうだからです。

楽しみ。

Laravelもくもく会@代官山 – connpass