2015-09-08 213 views
4

我试图扩展Laravel 5核心类。我想实现的是我可以有自定义的url生成器例如。 URL :: test()将生成自定义链接。Laravel 5扩展核心类

到目前为止,我有:

  1. 创建应用程序/ Acme的/ lib文件夹
  2. 添加的应用/ Acme的/ lib目录路径composer.json类映射

    "autoload": { 
        "classmap": [ 
         .... 
         app/Acme/lib 
        ] 
    } 
    
  3. 创建自定义UrlGenerator类在Acme/lib/CustomUrlGenerator.php中

    <?php namespace App\Acme\lib; 
    use \Illuminate\Routing\UrlGenerator; 
    class CustomUrlGenerator extends UrlGenerator { 
        public function test() { 
         return $this->to('/test'); 
        } 
    } 
    
  4. 创建的服务提供商的应用程序/ Acme的/ lib目录/ CustomUrlServiceProvider.php

    <?php namespace App\Acme\lib; 
    use \Illuminate\Routing\RoutingServiceProvider; 
    class CustomUrlServiceProvider extends RoutingServiceProvider { 
        public function boot() { 
         App::bind('url', function() { 
          return new CustomUrlGenerator(
           App::make('router')->getRoutes(), 
           App::make('request') 
          ); 
         }); 
         parent::boot(); 
        } 
    } 
    
  5. 在app /配置/ app.php

  6. 运行作曲家转储自动加载

    注册服务提供商

现在,当我跑{!!即时通讯404(每个路线)

Sorry, the page you are looking for could not be found. 
NotFoundHttpException in /vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php line 143: 

有什么,我失踪了吗? 非常感谢您的任何帮助..

回答

0

你谈论在RouteCollection.php文件中的错误,但你不包括它在你的问题。此外,我会在composer.json有不同的写法,这样的:

"autoload": { 
"classmap": [ 
     // .... 
     "App\\Your_Namespace\\" : "app/Acme/lib", 
    ] 
} 
+0

是的,我有固定的(非常感谢)+根据这个答案固定的自定义服务提供商http://stackoverflow.com/a/20520861/4437438,现在它正常工作 – SirInfant

+0

喜欢有帮助 – Zl3n