tutorial español desde descargar cero laravel-5

laravel 5 - español - Especifique una ruta pública diferente



laravel tutorial (3)

Mi aplicación Laravel funciona en la carpeta privada y necesito decirle a Laravel que la ruta pública es diferente. Hoy he actualizado una aplicación Laravel de 4.2 a 5.0 y no puedo encontrar dónde especificamos la ruta pública, ya que el archivo paths.php ya no existe en Laravel 5.0 .

En laravel 4.2 teníamos el archivo /bootstrap/paths.php :

/* |-------------------------------------------------------------------------- | Public Path |-------------------------------------------------------------------------- | | The public path contains the assets for your web application, such as | your JavaScript and CSS files, and also contains the primary entry | point for web requests into these applications from the outside. | */ ''public'' => __DIR__.''/../../../public_html'',

Todavía no estoy acostumbrado con la estructura de carpetas de Laravel 5.0, cualquier ayuda sería muy apreciada.


Lo que funcionó perfectamente para mí fue agregar a public/index.php las siguientes tres líneas:

$app->bind(''path.public'', function() { return __DIR__; });

Esto fue respondido en Laracast .


Creo que esto podría hacerse de diferentes maneras, aquí está el mío.

Crea un nuevo archivo auxiliar. Puede crearlo en la carpeta Services :

# app/Services/helper.php if ( ! function_exists(''private_path'')){ function private_path($path = ''''){ return app_path() . ''private/'' } }

Un buen lugar para importar el archivo auxiliar es AppServiceProvider que reside en la app/Providers/AppServiceProvider.php . Usa el boot para hacerlo.

public function boot() { include __dir__ . "/../Services/helper.php"; }

Cambie el nombre de la carpeta de public a private y, finalmente, puede llamar a su propia función desde cualquier lugar, como:

$path = private_path();


De acuerdo con esta publicación , para reemplazar la ruta pública original, necesitamos anular las rutas de las aplicaciones:

<?php namespace App; use Illuminate/Foundation/Application; class MyApp extends Application { protected $appPaths = array(); /** * Create a new Illuminate application instance. * * @param array|null $appPaths * @return /MyApp */ public function __construct($appPaths = null) { $this->registerBaseBindings(); $this->registerBaseServiceProviders(); $this->registerCoreContainerAliases(); if (!is_array($appPaths)) { abort(500, ''_construct requires paths array''); } if (!isset($appPaths[''base''])) { abort(500, ''_construct requires base path''); } $this->appPaths = $appPaths; $this->setBasePath($appPaths[''base'']); } /** * Set the base path for the application. * * @param string $basePath * @return $this */ public function setBasePath($basePath) { $this->basePath = $basePath; $this->bindPathsInContainer(); return $this; } /** * Bind all of the application paths in the container. * * @return void */ protected function bindPathsInContainer() { $this->instance(''path'', $this->path()); foreach ([''base'', ''config'', ''database'', ''lang'', ''public'', ''storage''] as $path) { $this->instance(''path.''.$path, $this->{$path.''Path''}()); } } /** * Get the path to the application "app" directory. * * @return string */ public function path() { return $this->basePath.''/app''; } /** * Get the base path of the Laravel installation. * * @return string */ public function basePath() { return $this->basePath; } /** * Get the path to the application configuration files. * * @return string */ public function configPath() { if (isset($this->appPaths[''config''])) { return $this->appPaths[''config'']; } return $this->basePath.''/config''; } /** * Get the path to the database directory. * * @return string */ public function databasePath() { if (isset($this->appPaths[''database''])) { return $this->appPaths[''database'']; } return $this->basePath.''/database''; } /** * Get the path to the language files. * * @return string */ public function langPath() { if (isset($this->appPaths[''lang''])) { return $this->appPaths[''lang'']; } return $this->basePath.''/resources/lang''; } /** * Get the path to the public / web directory. * * @return string */ public function publicPath() { if (isset($this->appPaths[''public''])) { return $this->appPaths[''public'']; } return $this->basePath.''/public''; } /** * Get the path to the storage directory. * * @return string */ public function storagePath() { if (isset($this->appPaths[''storage''])) { return $this->appPaths[''storage'']; } return $this->basePath.''/storage''; } }

Esto me parece extraño y como se ha mencionado en el post, parece que damos un paso atrás en las funcionalidades de Laravel, espero que lo cambien en una futura actualización.