Laravel5多应用修改
2016-01-12 11:15
956 查看
laravel5与laravel4在应用层上有很大的变化,主要变化有app目录结构,支持中间件等。
laraval5 多应用修改只需要改变自动加载即可。为了可复制性,可以定义一个应用名常量,后续增加应用可直接复制public和apps目录下应用,无需其它修改。
以 wap 应用为例:
在框架根目录下的public中新建目录 wap 并把原public 下所有文件剪切到wap中
在wap目录中打开 index.php 文件,在顶部添加代码:
修改index.php中两个引入文件路径:
注:标准修改中会变动到内核类自动加载配置文件,但可以相对熟悉下框架的加载情况,如不想修改内核配置文件,可跳过修改内核配置直接在 index.php 文件中在 require __DIR__ . '/../../bootstrap/autoload.php'; 下面添加代码:(代码中同时给出添加空命名空间的加载方法)
如图:
打开 \bootstrap\app.php 文件,在创建 $app 对象下面添加代码:
[b]在框架根目录下把 app 目录名改成 apps 并在 apps 中新建目录 wap 把原 app 中所有目录及文件剪切到 wap 目录中[/b]:
打开 \vendor\composer\autoload_psr4.php 文件,修改 App\\ 命名空间所在目录:(可跳过)
打开 \vendor\composer\autoload_classmap.php 文件修改应用所在的命名空间目录:(可跳过)
在 \resources\views 目录下新建 wap 目录 ,用于存放当前应用的所有视图文件:
打开 \config\view.php 文件修改视图所在目录:
修改到这里整个 wap 应用就可以正常使用了,需要注意的是 apps/wap/ 下所有的类必需以 App\ 命名空间开始,如果要添加Service 目录则命名空间为 App\Service\ 。
修改中可能需要改动 /vendor/ 目录下的几个加载配置文件,如果在index.php 添加对应的自动加载覆盖代码,即可跳过修改配置文件。
对于应用的配置 config 这个目录,不建议改动,一般大部分配置可公用,所以可以根据应用名常量来动态的改变配置参数。
本文出自 “秋风扫落叶” 博客,请务必保留此出处http://php2012web.blog.51cto.com/5585213/1734088
laraval5 多应用修改只需要改变自动加载即可。为了可复制性,可以定义一个应用名常量,后续增加应用可直接复制public和apps目录下应用,无需其它修改。
以 wap 应用为例:
在框架根目录下的public中新建目录 wap 并把原public 下所有文件剪切到wap中
在wap目录中打开 index.php 文件,在顶部添加代码:
define('APP_NAME', basename(__DIR__)); //定义当前应用名如图:
修改index.php中两个引入文件路径:
require __DIR__ . '/../../bootstrap/autoload.php'; $app = require_once __DIR__ . '/../../bootstrap/app.php';
注:标准修改中会变动到内核类自动加载配置文件,但可以相对熟悉下框架的加载情况,如不想修改内核配置文件,可跳过修改内核配置直接在 index.php 文件中在 require __DIR__ . '/../../bootstrap/autoload.php'; 下面添加代码:(代码中同时给出添加空命名空间的加载方法)
//自动加载器 $classLoader = ComposerAutoloaderInit61a2eae33d1ec273aa64b59b5c8cbd67::getLoader(); //框架根目录 $baseDir = dirname(dirname(__DIR__)); //外层目录,无命名空间,如同laravel4中的ClassLoader::addDirectories($dirs) $classLoader->addPsr4(null, [ $baseDir . '/models', $baseDir . '/services', ]); //应用 $classLoader->addPsr4('App\\', array($baseDir . '/apps/' . APP_NAME)); //类地图 $appDir = $baseDir . '/apps/' . APP_NAME; $classLoader->addClassMap([ 'App\\Console\\Commands\\Inspire' => $appDir . '/Console/Commands/Inspire.php', 'App\\Console\\Kernel' => $appDir . '/Console/Kernel.php', 'App\\Events\\Event' => $appDir . '/Events/Event.php', 'App\\Exceptions\\Handler' => $appDir . '/Exceptions/Handler.php', 'App\\Http\\Controllers\\Auth\\AuthController' => $appDir . '/Http/Controllers/Auth/AuthController.php', 'App\\Http\\Controllers\\Auth\\PasswordController' => $appDir . '/Http/Controllers/Auth/PasswordController.php', 'App\\Http\\Controllers\\Controller' => $appDir . '/Http/Controllers/Controller.php', 'App\\Http\\Kernel' => $appDir . '/Http/Kernel.php', 'App\\Http\\Middleware\\Authenticate' => $appDir . '/Http/Middleware/Authenticate.php', 'App\\Http\\Middleware\\EncryptCookies' => $appDir . '/Http/Middleware/EncryptCookies.php', 'App\\Http\\Middleware\\RedirectIfAuthenticated' => $appDir . '/Http/Middleware/RedirectIfAuthenticated.php', 'App\\Http\\Middleware\\VerifyCsrfToken' => $appDir . '/Http/Middleware/VerifyCsrfToken.php', 'App\\Http\\Requests\\Request' => $appDir . '/Http/Requests/Request.php', 'App\\Jobs\\Job' => $appDir . '/Jobs/Job.php', 'App\\Providers\\AppServiceProvider' => $appDir . '/Providers/AppServiceProvider.php', 'App\\Providers\\AuthServiceProvider' => $appDir . '/Providers/AuthServiceProvider.php', 'App\\Providers\\EventServiceProvider' => $appDir . '/Providers/EventServiceProvider.php', 'App\\Providers\\RouteServiceProvider' => $appDir . '/Providers/RouteServiceProvider.php', 'App\\User' => $appDir.'/User.php', ]);
如图:
打开 \bootstrap\app.php 文件,在创建 $app 对象下面添加代码:
/*修改应用所在根目录*/ $app->instance('path', realpath(__DIR__ . '/../apps/' . APP_NAME)); /*修改公共目录*/ $app->instance('path.public', realpath(__DIR__ . '/../public/' . APP_NAME));如图:
[b]在框架根目录下把 app 目录名改成 apps 并在 apps 中新建目录 wap 把原 app 中所有目录及文件剪切到 wap 目录中[/b]:
打开 \vendor\composer\autoload_psr4.php 文件,修改 App\\ 命名空间所在目录:(可跳过)
'App\\' => array($baseDir . '/apps/' . APP_NAME),如图:
打开 \vendor\composer\autoload_classmap.php 文件修改应用所在的命名空间目录:(可跳过)
$appDir = $baseDir . '/apps/' . APP_NAME;
'App\\Console\\Commands\\Inspire' => $appDir.'/Console/Commands/Inspire.php', 'App\\Console\\Kernel' => $appDir.'/Console/Kernel.php', 'App\\Events\\Event' => $appDir.'/Events/Event.php', 'App\\Exceptions\\Handler' => $appDir.'/Exceptions/Handler.php', 'App\\Http\\Controllers\\Auth\\AuthController' => $appDir.'/Http/Controllers/Auth/AuthController.php', 'App\\Http\\Controllers\\Auth\\PasswordController' => $appDir.'/Http/Controllers/Auth/PasswordController.php', 'App\\Http\\Controllers\\Controller' => $appDir.'/Http/Controllers/Controller.php', 'App\\Http\\Kernel' => $appDir.'/Http/Kernel.php', 'App\\Http\\Middleware\\Authenticate' => $appDir.'/Http/Middleware/Authenticate.php', 'App\\Http\\Middleware\\EncryptCookies' => $appDir.'/Http/Middleware/EncryptCookies.php', 'App\\Http\\Middleware\\RedirectIfAuthenticated' => $appDir.'/Http/Middleware/RedirectIfAuthenticated.php', 'App\\Http\\Middleware\\VerifyCsrfToken' => $appDir.'/Http/Middleware/VerifyCsrfToken.php', 'App\\Http\\Requests\\Request' => $appDir.'/Http/Requests/Request.php', 'App\\Jobs\\Job' => $appDir.'/Jobs/Job.php', 'App\\Providers\\AppServiceProvider' => $appDir.'/Providers/AppServiceProvider.php', 'App\\Providers\\AuthServiceProvider' => $appDir.'/Providers/AuthServiceProvider.php', 'App\\Providers\\EventServiceProvider' => $appDir.'/Providers/EventServiceProvider.php', 'App\\Providers\\RouteServiceProvider' => $appDir.'/Providers/RouteServiceProvider.php', 'App\\User' => $appDir.'/User.php',如图:
在 \resources\views 目录下新建 wap 目录 ,用于存放当前应用的所有视图文件:
打开 \config\view.php 文件修改视图所在目录:
'paths' => [ realpath(base_path('resources/views') . '/' . APP_NAME), ],如图:
修改到这里整个 wap 应用就可以正常使用了,需要注意的是 apps/wap/ 下所有的类必需以 App\ 命名空间开始,如果要添加Service 目录则命名空间为 App\Service\ 。
修改中可能需要改动 /vendor/ 目录下的几个加载配置文件,如果在index.php 添加对应的自动加载覆盖代码,即可跳过修改配置文件。
对于应用的配置 config 这个目录,不建议改动,一般大部分配置可公用,所以可以根据应用名常量来动态的改变配置参数。
本文出自 “秋风扫落叶” 博客,请务必保留此出处http://php2012web.blog.51cto.com/5585213/1734088
相关文章推荐
- 【PHP】PHP 7.0.2 发布
- 数据分页 THINKPHP3.2 分页 三种分页方法
- ThinkPHP3.2 分页实现
- php 生成短URL的算法
- 1.php多态
- mvc中的OutputCache
- php连接ftp
- php获取server端mac和clientmac的地址
- Yii 多表关联relations,需要与with()方法联合使用
- php中计算学生位置代码片段
- FusionCharts在PHP开发中的使用
- yii操作数据库(PDO)
- 命令行cli使用php的exec可以正常,浏览器访问无输出解决方案
- yii操作数据库(AR)
- laravel中遇到的问题
- PHP加密与解密
- [转]TFTP协议详解
- win8.1右键新建菜单添加新建php文件
- tp upload
- 同样遇到PHP 连接SQL2008 查询出现中文乱码问题