--- PHP Si cambias de versión, ver el siguiente punto de como cambiar versión de PHP : PHP : Setear la versión php -v version de php php artisan --version Versión de Laravel /ruta/a/php7.3 artisan tu_comando podemos invocar así, a artisan con una versión de php específica /usr/bin/php7.3 Alias: Otra opción es configurar un alias en tu terminal para usar la versión de PHP deseada. Por ejemplo, si estás en una terminal de Unix (Linux o macOS), puedes agregar un alias en tu archivo de configuración de shell (como .bashrc, .zshrc, etc.) que en Debian se encuentra en tu home: alias php='/usr/bin/php7.3' o alias php7='/usr/bin/php7.3' Guarda los cambios y cierra y vuelve a abrir la terminal para que los cambios surtan efecto. Luego, podrás usar php artisan normalmente y se utilizará la versión de PHP que hayas definido en el alias. En mi PC, bajo laravel_academico usar el alias php7 Y para usar composer : /usr/bin/php7.3 /usr/local/bin/composer dump-autoload o php7 /usr/local/bin/composer dump-autoload php7 /usr/local/bin/composer update --- .htaccess: bajo la carpeta de Laravel no tiene modificaciones manuales. --- .env: Tiene seteos que afectan a todo el proyecto. Muchos valores que están contenidos bajo /config, serán tomados desde .env, por lo que no es necesario hacerlo en esos archivos, excepto valores puntuales que no están específicados en .env . Ver en comandos_historial.txt otros cambios a este archivo. --- Archivos de configuración Laravel timezone de Argentina En config/app.php buscar la clave 'timezone' por 'America/Argentina/Buenos_Aires' Hice modificaciones en /config: app.php Modifique el timezone y el locale database.php Modifique engine de null a 'innodb' // Quizas haya que modificar options por => [\PDO::ATTR_EMULATE_PREPARES => true ] 'options' => extension_loaded('pdo_mysql') ? array_filter([ PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), ]) : [], mail.php Hay que revisar si los host port están bien según el hosting view.php Agrego base_path().'/miLibreria/resources/views', --- composer.json: Agregado en autoload en composer.json, miLibreria, y en files misFunciones: "psr-4": { "App\\": "app/", "Database\\Factories\\": "database/factories/", "Database\\Seeders\\": "database/seeders/", "miLibreria\\": "miLibreria/", "Modules\\": "Modules/" }, "files": [ "miLibreria/misFunciones.php", "app/Helpers/helpers.php" // son funciones para usar en las views ] --- public/index.php: Agrego la línea que carga a seteo.php, donde define variables globales del proyecto: require_once public_path('cargar_seteo.php'); --- Modulos NWidart: Para la separación en modulos utilice el componente nwidart. https://github.com/nWidart/laravel-modules composer require nwidart/laravel-modules Agregado en autoload en composer.json: "autoload": { "psr-4": { "Modules\\": "Modules/" Creo el ServiceProvider del modulo: php artisan vendor:publish --provider="Nwidart\Modules\LaravelModulesServiceProvider" Dicho comando crea en cada modulo el archivo: Modules\Contabilidad\Providers\ContabilidadServiceProvider y \app\config\modules.php. Actualizar Modules\Contabilidad\module.json Ahi cambio la carpeta para los models db. Cambio de Entities a Models/Infraestructure/DB/Models (no he tenido éxito con esto, para que artisan me cree los models donde corresponden) (esto creo que es más bien para la generación de modelos desde el comando artisan, pero en sí, no es importante para el funcionamiento general, ya que los modelos se basan en su namespace) { "name": "Animals", "alias": "animals", "description": "", "keywords": [], "priority": 0, "providers": [ "Modules\\Animals\\Providers\\AnimalsServiceProvider" ], "autoload": { "psr-4": { } }, "files": [], "paths": { "assets": "Resources/assets", "config": "Config", "database": "Database", "lang": "Resources/lang", "views": "Resources/views", "test": "Tests", "factories": "Database/factories", "seeds": "Database/seeders", "migrations": "Database/migrations", "models": "Models/Infraestructure/DB/Models", "infraestructure": "Models/Infraestructure" }, "generator": { "class": { "path": "Models\\Infraestructure\\DB\\Models", "namespace": "Animals\\Models\\Infraestructure\\DB\\Models", "extends": "Illuminate\\Database\\Eloquent\\Model" } }} Respecto a los controllers: Revisar en cada modulo la ruta de los controllers: ( Contabilidad/Providers/RouteServiceProvider.php ) protected $moduleNamespace = 'Modules\Contabilidad\Http'; luego debe completarse el path en el route web: Route::get('/', 'Front\Controllers\ContabilidadController@index'); modules_statuses.json: Menciona los modulos creados. Está en la carpeta raíz. --- Path views: Para que las views tengan acceso a miLibreria, en app/Providers/AppServiceProvider.php, agregue lo siguiente: public function register() { $this->loadViewsFrom( base_path().'/miLibreria', 'miLibreria'); } y en /config/view.php 'paths' => [ resource_path('views'), // base_path().'/Modules/Geografia/Resources/', base_path().'/miLibreria/resources/views', --- Testing: Para incorporar los test propios a cada modulo debe agregarse la siguiente línea en phpunit.xml: ... ./tests/Feature ./Modules/Contabilidad/Tests/Unit ./Modules/Contabilidad/Tests/Feature/integration/ ... ---