1

私は Laravel を初めて使用します。Laravel 以外のほぼすべての L5 パッケージを使用しています。しかし、これらを機能させるにはいくつかの問題があります。

これは私の composer.json ファイルです:

{
      "require": {
         "slim/slim": "2.*",
         "zeuxisoo/slim-whoops": "0.2.0",
         "filp/whoops": "1.1.2",

         "illuminate/database": "5.1.*",
         "illuminate/support": "5.1.*",
         "illuminate/session": "5.1.*",
         "illuminate/filesystem": "5.1.*",
         "illuminate/config": "5.1.*",
         "illuminate/session": "5.1.*",
         "illuminate/routing": "^5.1",
         "illuminate/events": "5.1.*",
         "illuminate/translation": "5.1.*",
         "illuminate/encryption": "5.1.*",
         "illuminate/queue": "5.1.*",
         "illuminate/mail": "5.1.*",
         "illuminate/view": "5.1.*",

         "laravelcollective/html": "5.1.*",

         "iron-io/iron_mq": "~2.0",
         "Mockery/Mockery": "~0.9.1",
         "pimple/pimple": "3.0",

         "philo/laravel-blade": "3.*",
         "jenssegers/mongodb": "^2.1",

         "illuminate/auth": "5.1.*",
         "illuminate/bus": "5.1.*",
         "illuminate/broadcasting": "5.1.*",
         "illuminate/cache": "5.1.*",
         "illuminate/console": "5.1.*", 
         "illuminate/container": "5.1.*",
         "illuminate/contracts": "5.1.*",
         "illuminate/cookie": "5.1.*",
         "illuminate/hashing": "5.1.*",
         "illuminate/http": "5.1.*",
         "illuminate/log": "5.1.*",
         "illuminate/pagination": "5.1.*",
         "illuminate/pipeline": "5.1.*",
         "illuminate/redis": "5.1.*",
         "illuminate/validation": "5.1.*"

},
    "autoload": {
        "psr-4": {
            "App\\": "app/"
        }
    }
}

それが index.php です。

    // Import Illuminate packages
    require_once '../../../vendor/autoload.php';

    // set database connection and setup
    require_once '../../../config/bootstrap.php';

    use Illuminate\Support\Facades\Response as Response;

    // Instantiate the container
    $app = new Illuminate\Container\Container();

    // Tell facade about the application instance
    Illuminate\Support\Facades\Facade::setFacadeApplication($app);

    // register application instance with container
    $app['app'] = $app;

    // set environment 
    $app['env'] = 'production';

    $app->instance('request', \Illuminate\Http\Request::capture());

    // Register service providers

    with(new Illuminate\Events\EventServiceProvider($app))->register();
    with(new Illuminate\Routing\RoutingServiceProvider($app))->register();

    with(new Illuminate\Auth\AuthServiceProvider($app))->register();
    with(new Illuminate\Broadcasting\BroadcastServiceProvider($app))->register();
    with(new Illuminate\Bus\BusServiceProvider($app))->register();
    with(new Illuminate\Cache\CacheServiceProvider($app))->register();

    with(new Illuminate\Routing\ControllerServiceProvider($app))->register();
    with(new Illuminate\Cookie\CookieServiceProvider($app))->register();
    with(new Illuminate\Database\DatabaseServiceProvider($app))->register();
    with(new Illuminate\Encryption\EncryptionServiceProvider($app))->register();
    with(new Illuminate\Filesystem\FilesystemServiceProvider($app))->register();

    with(new Illuminate\Hashing\HashServiceProvider($app))->register();
    with(new Illuminate\Mail\MailServiceProvider($app))->register();
    with(new Illuminate\Pagination\PaginationServiceProvider($app))->register();
    with(new Illuminate\Pipeline\PipelineServiceProvider($app))->register();
    with(new Illuminate\Queue\QueueServiceProvider($app))->register();
    with(new Illuminate\Redis\RedisServiceProvider($app))->register();
    with(new Illuminate\Auth\Passwords\PasswordResetServiceProvider($app))->register();
    with(new Illuminate\Session\SessionServiceProvider($app))->register();
    with(new Illuminate\Translation\TranslationServiceProvider($app))->register();
    with(new Illuminate\Validation\ValidationServiceProvider($app))->register();
    with(new Illuminate\View\ViewServiceProvider($app))->register();

    with(new Collective\Html\HtmlServiceProvider($app))->register();

    // Class aliases
    class_alias('Collective\Html\FormFacade', 'Form');
    class_alias('Collective\Html\HtmlFacade', 'Html');

    // Include all the routes
    $app['router']->get('/', 'TestController@index');

    $app['router']->get('/view', 'TestController@show');

    $app['router']->get('/{id}', 'TestController@create');

    // Instantiate the request
    $request = Illuminate\Http\Request::createFromGlobals();

    // Dispatch the router
    $response = $app['router']->dispatch($request);

    // Send the response
    $response->send();

そして TestController クラス:

<?php

use Illuminate\Routing\Controller as Controller;
use Illuminate\Support\Facades\DB as DB;
use Illuminate\Support\Facades\View as View;


class TestController extends Controller {

   public function show() {
        return View::make('hello2');
   }
}

TestController の show メソッドを呼び出すと、次のエラーが発生します。

[致命的なエラー] /var/www/html/vendor/illuminate/container/Container.php:736 で「Class config does not exist」というメッセージを含む例外「ReflectionException」をキャッチできませんでした:736

構成パッケージの使用方法がわかりません。これがこのエラーが発生する理由だと思います。構成パッケージにはサービス プロバイダーがないため、これを開始できません。

私はサードパーティのカスタムphpフレームワークを使用しているため、laravelの外でilluminateパッケージを使用しようとしていますが、いくつかの理由でL5に徐々に移行する必要があります。これがベストプラクティスである場合は、あなたの経験が必要です。

4

0 に答える 0