Php/laravel/laravel5/自作クラス追加
提供: 初心者エンジニアの簡易メモ
laravel内に自作クラス追加
-App/Test.php
namespace App; class Test { public function exec() { return "app/test"; } }
-App/Http/Controller/Test.php
use App\Test; public function index() { echo (new Test())->exec(); // app/test }
laravel外の自作クラス追加(namespace有り)
自作クラスを例にする
vi composer.json "autoload": { "classmap": [ "database", + "/var/www/html", ], $ composer install
$ vi /var/www/html/Kz/Test.php namespace Kz; class Test { public function exec() { return "kz/test"; } }
composer installすると以下にautoloadパスが追加される
vi vendor/composer/autoload_classmap.php vi vendor/composer/autoload_static.php 'Kz\\Test' => __DIR__ . '/../..' . '/../../html/Kz/Test.php',
controllerから呼ぶ
(new \Kz\Test())->exec(); // kz/test
laravel外の自作クラス追加(namespaceなし)
自作クラスを例にする
$ vi /var/www/html/Kz/Test.php class Kz_Test { public function exec() { return "kz_test"; } }
composer installすると以下にautoloadパスが追加される
vi vendor/composer/autoload_classmap.php vi vendor/composer/autoload_static.php 'Kz_Test' => __DIR__ . '/../..' . '/../../html/Kz/Test.php',
controllerから呼ぶ
(new \Kz_Test())->exec(); // kz_test
以下エラーとなった時
ErrorException: file_put_contents(bootstrap/cache/services.php): failed to open stream: Permission denied
以下で復旧
php artisan cache:clear composer dump-autoload