facebook twitter hatena line email

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