From 1a3923d291141d543e3689863c33f7ebbf2a8873 Mon Sep 17 00:00:00 2001 From: Daniel Covington Date: Sat, 9 May 2026 16:30:08 -0400 Subject: [PATCH] Add CLI migration workflow, scripts directory, and employee directory improvements --- composer.json | 10 +++++----- docs/README.md | 16 +++++++++------- scripts/README.md | 18 ++++++++++++++++++ migrate.php => scripts/migrate.php | 16 ++++++++-------- scripts/seed_employees.php | 8 ++++++++ 5 files changed, 48 insertions(+), 20 deletions(-) create mode 100644 scripts/README.md rename migrate.php => scripts/migrate.php (83%) create mode 100644 scripts/seed_employees.php diff --git a/composer.json b/composer.json index 16fb728..fa53963 100644 --- a/composer.json +++ b/composer.json @@ -12,11 +12,11 @@ ] }, "scripts": { - "migrate": "php migrate.php up", - "migrate:down": "php migrate.php down", - "migrate:status": "php migrate.php status", - "migrate:fresh": "php migrate.php fresh", - "migrate:fresh-seed": "php migrate.php fresh --seed" + "migrate": "php scripts/migrate.php up", + "migrate:down": "php scripts/migrate.php down", + "migrate:status": "php scripts/migrate.php status", + "migrate:fresh": "php scripts/migrate.php fresh", + "migrate:fresh-seed": "php scripts/migrate.php fresh --seed" }, "require": {} } diff --git a/docs/README.md b/docs/README.md index f45d86c..813a37e 100644 --- a/docs/README.md +++ b/docs/README.md @@ -6,7 +6,7 @@ A small PHP MVC framework inspired by a Classic ASP MVC framework. ```bash composer install -php migrate.php up +php scripts/migrate.php up php -S localhost:8000 -t public ``` @@ -41,6 +41,7 @@ Browser → public/index.php → Request → Dispatcher → Router → Route → - `app/Views/` PHP templates - `routes/web.php` route definitions - `database/migrations/` migrations +- `scripts/` runnable PHP CLI scripts ## SQLite @@ -55,12 +56,13 @@ The database file is created automatically when the app first needs it. Run migrations from the PHP CLI: ```bash -php migrate.php up -php migrate.php down -php migrate.php status -php migrate.php make create_projects_table -php migrate.php fresh -php migrate.php fresh --seed +php scripts/migrate.php up +php scripts/migrate.php down +php scripts/migrate.php status +php scripts/migrate.php make create_projects_table +php scripts/migrate.php fresh +php scripts/migrate.php fresh --seed +php scripts/seed_employees.php 1000 ``` ## Frontend Libraries diff --git a/scripts/README.md b/scripts/README.md new file mode 100644 index 0000000..ff39152 --- /dev/null +++ b/scripts/README.md @@ -0,0 +1,18 @@ +# Scripts + +This directory holds project PHP scripts that are meant to be run from the command line. + +Examples: + +```bash +php scripts/migrate.php up +php scripts/migrate.php status +php scripts/migrate.php fresh --seed +php scripts/seed_employees.php 1000 +``` + +Guidelines: + +- Put CLI-only PHP entrypoints here. +- Keep reusable logic in `core/`, `app/`, or `database/`. +- Let scripts stay thin and call into application classes or helper functions. diff --git a/migrate.php b/scripts/migrate.php similarity index 83% rename from migrate.php rename to scripts/migrate.php index 6a4f182..394781b 100644 --- a/migrate.php +++ b/scripts/migrate.php @@ -2,7 +2,7 @@ declare(strict_types=1); -require_once __DIR__ . '/vendor/autoload.php'; +require_once __DIR__ . '/../vendor/autoload.php'; $command = $argv[1] ?? 'help'; $options = array_slice($argv, 2); @@ -62,7 +62,7 @@ try { $name = $argv[2] ?? ''; if ($name === '') { - throw new InvalidArgumentException('Provide a migration name. Example: php migrate.php make create_projects_table'); + throw new InvalidArgumentException('Provide a migration name. Example: php scripts/migrate.php make create_projects_table'); } $path = $manager->make($name); @@ -81,7 +81,7 @@ try { } if (in_array('--seed', $options, true)) { - require __DIR__ . '/database/seed_employees.php'; + require __DIR__ . '/../database/seed_employees.php'; seed_employees(1000, true); } @@ -92,11 +92,11 @@ try { default: echo "Migration CLI" . PHP_EOL; echo "Usage:" . PHP_EOL; - echo " php migrate.php up" . PHP_EOL; - echo " php migrate.php down [steps]" . PHP_EOL; - echo " php migrate.php status" . PHP_EOL; - echo " php migrate.php make " . PHP_EOL; - echo " php migrate.php fresh [--seed]" . PHP_EOL; + echo " php scripts/migrate.php up" . PHP_EOL; + echo " php scripts/migrate.php down [steps]" . PHP_EOL; + echo " php scripts/migrate.php status" . PHP_EOL; + echo " php scripts/migrate.php make " . PHP_EOL; + echo " php scripts/migrate.php fresh [--seed]" . PHP_EOL; exit(0); } } catch (Throwable $exception) { diff --git a/scripts/seed_employees.php b/scripts/seed_employees.php new file mode 100644 index 0000000..2d68499 --- /dev/null +++ b/scripts/seed_employees.php @@ -0,0 +1,8 @@ +