{"id":15093705,"url":"https://github.com/kenjis/codeigniter4-multiple-apps-sample","last_synced_at":"2025-07-25T02:35:35.837Z","repository":{"id":142580903,"uuid":"481423701","full_name":"kenjis/codeigniter4-multiple-apps-sample","owner":"kenjis","description":"Running Multiple Applications with one CodeIgniter Installation","archived":false,"fork":false,"pushed_at":"2022-04-14T08:10:33.000Z","size":82,"stargazers_count":11,"open_issues_count":0,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-12T07:43:29.529Z","etag":null,"topics":["codeigniter","codeigniter4"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kenjis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-04-14T01:12:58.000Z","updated_at":"2024-02-22T10:11:45.000Z","dependencies_parsed_at":"2023-04-09T23:51:55.785Z","dependency_job_id":null,"html_url":"https://github.com/kenjis/codeigniter4-multiple-apps-sample","commit_stats":{"total_commits":9,"total_committers":1,"mean_commits":9.0,"dds":0.0,"last_synced_commit":"f563d2bd5b16f0f2b4fa966d0f8f7d998a407280"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kenjis/codeigniter4-multiple-apps-sample","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kenjis%2Fcodeigniter4-multiple-apps-sample","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kenjis%2Fcodeigniter4-multiple-apps-sample/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kenjis%2Fcodeigniter4-multiple-apps-sample/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kenjis%2Fcodeigniter4-multiple-apps-sample/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kenjis","download_url":"https://codeload.github.com/kenjis/codeigniter4-multiple-apps-sample/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kenjis%2Fcodeigniter4-multiple-apps-sample/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266944747,"owners_count":24010489,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-25T02:00:09.625Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["codeigniter","codeigniter4"],"created_at":"2024-09-25T11:24:51.885Z","updated_at":"2025-07-25T02:35:35.798Z","avatar_url":"https://github.com/kenjis.png","language":"PHP","readme":"# Running Multiple Applications with one CodeIgniter Installation\n\nSee https://codeigniter4.github.io/CodeIgniter4/general/managing_apps.html#running-multiple-applications-with-one-codeigniter-installation\n\n## Folder Structure\n\n```\ncodeigniter4-multiple-apps-sample/\n├── bar/\n│   ├── app/\n│   ├── env\n│   ├── phpunit.xml.dist\n│   ├── public/\n│   ├── spark\n│   ├── tests/\n│   └── writable/\n├── foo/\n│   ├── app/\n│   ├── env\n│   ├── phpunit.xml.dist\n│   ├── public/\n│   ├── spark\n│   ├── tests/\n│   └── writable/\n├── vendor/\n│    ├── autoload.php\n│    ├── bin/\n│    ├── codeigniter4/framework/\n│    └── composer/\n├── LICENSE\n├── README.md\n├── builds\n├── composer.json\n└── composer.lock\n```\n\n## Install CodeIgniter4\n\nInstall CodeIgniter4 with Composer.\n\n```\n$ composer create-project codeigniter4/appstarter multiple\n```\n\n## Create Folders for Apps\n\nCreate `foo/` for one app.\n\n```\n$ cd multiple/\n$ mkdir foo\n```\n\nMove files into `foo/`.\n\n```\n$ mv app/ public/ tests/ writable/ spark env phpunit.xml.dist foo/\n```\n\nCreate `bar/` for another app.\n\n```\n$ cp -pr foo/ bar/\n```\n\n## Fix Composer autoload\n\nFix `composer.json`.\n\n```diff\n--- a/composer.json\n+++ b/composer.json\n@@ -17,10 +17,6 @@\n         \"ext-fileinfo\": \"Improves mime type detection for files\"\n     },\n     \"autoload\": {\n-        \"psr-4\": {\n-            \"App\\\\\": \"app\",\n-            \"Config\\\\\": \"app/Config\"\n-        },\n         \"exclude-from-classmap\": [\n             \"**/Database/Migrations/**\"\n         ]\n```\n\nUpdate Composer autoload config.\n\n```\n$ composer dump-autoload\n```\n\n## Update Paths\n\nUpdate path configurations.\n\n### foo\n\n```diff\n--- a/foo/app/Config/Constants.php\n+++ b/foo/app/Config/Constants.php\n@@ -23,7 +23,7 @@ defined('APP_NAMESPACE') || define('APP_NAMESPACE', 'App');\n  | The path that Composer's autoload file is expected to live. By default,\n  | the vendor folder is in the Root directory, but you can customize that here.\n  */\n-defined('COMPOSER_PATH') || define('COMPOSER_PATH', ROOTPATH . 'vendor/autoload.php');\n+defined('COMPOSER_PATH') || define('COMPOSER_PATH', ROOTPATH . '../vendor/autoload.php');\n \n /*\n  |--------------------------------------------------------------------------\n```\n\n```diff\n--- a/foo/app/Config/Paths.php\n+++ b/foo/app/Config/Paths.php\n@@ -25,7 +25,7 @@ class Paths\n      *\n      * @var string\n      */\n-    public $systemDirectory = __DIR__ . '/../../vendor/codeigniter4/framework/system';\n+    public $systemDirectory = __DIR__ . '/../../../vendor/codeigniter4/framework/system';\n \n     /**\n      * ---------------------------------------------------------------\n```\n\n### bar\n\n```diff\n--- a/bar/app/Config/Constants.php\n+++ b/bar/app/Config/Constants.php\n@@ -23,7 +23,7 @@ defined('APP_NAMESPACE') || define('APP_NAMESPACE', 'App');\n  | The path that Composer's autoload file is expected to live. By default,\n  | the vendor folder is in the Root directory, but you can customize that here.\n  */\n-defined('COMPOSER_PATH') || define('COMPOSER_PATH', ROOTPATH . 'vendor/autoload.php');\n+defined('COMPOSER_PATH') || define('COMPOSER_PATH', ROOTPATH . '../vendor/autoload.php');\n \n /*\n  |--------------------------------------------------------------------------\n```\n\n```diff\n--- a/bar/app/Config/Paths.php\n+++ b/bar/app/Config/Paths.php\n@@ -25,7 +25,7 @@ class Paths\n      *\n      * @var string\n      */\n-    public $systemDirectory = __DIR__ . '/../../vendor/codeigniter4/framework/system';\n+    public $systemDirectory = __DIR__ . '/../../../vendor/codeigniter4/framework/system';\n \n     /**\n      * ---------------------------------------------------------------\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkenjis%2Fcodeigniter4-multiple-apps-sample","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkenjis%2Fcodeigniter4-multiple-apps-sample","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkenjis%2Fcodeigniter4-multiple-apps-sample/lists"}