-2

現在、独自の新しいフレームワークをサポートするフレームワークを探しています。Laravel は私の最良の選択のようです。

私は非常に具体的な構造を念頭に置いています。私のプロジェクトには、共通のモデル、ビュー、およびコントローラーを備えた基本設計と、特定のビューを備えたいくつかのサブプロジェクトがあります。目標は、同じビジネスの所有者に独自のウェブサイトを提供するプラットフォームを提供することです。多くの場合、構造とコンポーネントは同じままで、デザインのみが異なります。私の考えは、すべてのサイトがそのモデル、コントローラー、およびビューをプルするlaravelで保守可能な構造を作成し、特定の必要性がある場合は追加のビューを作成できるようにすることでした。

誰かが過去に似たようなプロジェクトを経験したことがありますか?

いくつかの大きな障害があります。

  • サブプロジェクトの作成
  • マルチデータベース接続の使用
  • メイン プロジェクトのモデルとビューの使用

プロジェクトのセットアップ

4

1 に答える 1

3

Laravel は非常に柔軟で高度な設定が可能で、そのようなことを行うのにまったく問題はないはずです。たとえば、データベースに関しては、2 つの接続を作成でき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/');
于 2016-12-02T12:32:16.430 に答える