sirve que plantillas para for example descargar content ciclo laravel laravel-5 multi-tenant

que - Caminos dinámicos para laravel 5



para que sirve el yield laravel (1)

puntos de vista

Usando un proveedor de servicios puede usar lo siguiente en su método de boot() para que las vistas estén disponibles en el espacio de nombres raíz ( view(''your-view'') lugar de view(''package::your-view'') ):

$this->app[''view'']->addLocation(''/your/new/location'');

lang

Utilizando un proveedor de servicios puede usar lo siguiente en su método boot() donde $path es la nueva ruta para sus traducciones de espacio de nombres raíz:

$app->bindShared(''translation.loader'', function($app) use ($path) { return new /Illuminate/Translation/FileLoader($app[''files''], $path); }); $app->bindShared(''translator'', function($app) { $translator = new /Illuminate/Translation/Translator($app[''translation.loader''], $app[''config''][''app.locale'']); $translator->setFallback($app[''config''][''app.fallback_locale'']); return $translator; });

rutas

Routes es de lejos el más fácil. Simplemente /File::requireOnce() usando require_once o usando el método de Laravel: /File::requireOnce() .

config

Utilicé un directorio que permitiría a un inquilino anular las configuraciones centrales. Por favor, avise que no hay controles de seguridad ni de cordura aquí, por lo que el acceso debe ser limitado.

Usando un proveedor de servicios puede usar lo siguiente en su método boot()

foreach (/File::allFiles(''/path/to/configs'') as $path) { $key = /File::name($path); $app[''config'']->set($key, array_merge(require $path, $app[''config'']->get($key, []))); }

Esto fusionará las configuraciones existentes anulando sus valores con los archivos de configuración proporcionados.

vendedor

Realmente interesante es la posibilidad de usar clases cargadas dinámicamente. Para hacer esto, necesitará usar el addDirectories() ClassLoader addDirectories() en su proveedor de servicios.

/Illuminate/Support/ClassLoader::addDirectories([''/path/to/vendors'']);

consideraciones adicionales

El código anterior puede implementarse utilizando proveedores de servicios. Para que un proveedor de servidores funcione, debe agregarlos al archivo config/app.php en la matriz de providers . De lo contrario, no se habilitará ningún código en el proveedor de servicios.

Mientras construía paquetes multi-tenancy para Laravel 5 , tuve que descubrir cómo hacer dinámicas las rutas de acceso y los espacios de nombres.

Esto implicaría:

  • puntos de vista; agregar un directorio de plantilla dinámicamente que está disponible en el espacio de nombres raíz
  • lang; agregar un directorio de idioma dinámicamente disponible en el espacio de nombres raíz
  • rutas; agregando un archivo de rutas dinámicamente
  • config; fusionar archivos de configuración adicionales desde una ubicación dinámica
  • vendedor; permitiendo que los proveedores y paquetes personalizados estén disponibles desde una ubicación dinámica