我目前正在寻找支持我自己的新框架的框架。 Laravel似乎是我的最佳选择。
我有一个非常具体的结构。我的项目将具有基本设计,包括通用模型,视图和控制器,以及具有特定视图的一些子项目。我们的目标是为同一个企业的所有者提供一个平台,我们提供一个独特的网站。在许多情况下,只有设计变化,而结构和组件保持不变。我的想法是在laravel上创建一个可维护的结构,每个站点从中拉出模型,控制器和视图,如果有特定需要,可以创建一个额外的视图。
过去有人有过类似项目的经验吗?
我看到一些主要障碍:
答案 0 :(得分:3)
Laravel非常灵活,可配置性很强,你可以毫无问题地做这样的事情。例如,对于数据库,您可以创建两个连接:main
,与主数据库表的固定连接,以及当前项目表的project
,这里应该是什么样的像:
'main' => [
'driver' => 'pgsql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '5432'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public',
'sslmode' => 'prefer',
],
'project' => [
'driver' => 'pgsql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '5432'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public',
'sslmode' => 'prefer',
],
你应该能够:
配置模型连接:
<?php
namespace App;
class Posts extends Model
{
protected $connection = 'project';
}
直接查询连接:
DB::connection('project')->table('users')->where('activated', true)->get();
在运行时配置数据库:
config([
'database.connections.project.database' => 'project1db',
'database.connections.project.user' => $user,
'database.connections.project.password' => $password,
]);
至于视图,您可以通过简单地执行以下操作告诉Laravel在您需要的任何地方查找视图:
View::addLocation('/path/to/project1/');