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