ubixsys / ubixcore
uBix Core - The last repo!
Requires
- php: ^8.3
- akrabat/proxy-detection-middleware: ^1.0
- fig/http-message-util: ^1.1
- guzzlehttp/guzzle: ^7.8
- latte/latte: ^3.0
- monolog/monolog: ^3.6
- nyholm/psr7: ^1.8
- php-di/php-di: ^7.0.11
- php-di/slim-bridge: ^3.4
- psr/http-client: ^1.0
- psr/http-factory: ^1.1
- psr/http-message: ^1.1
- psr/simple-cache: ^3.0
- ramsey/uuid: ^4.9
- slim/psr7: ^1.4.0
- slim/slim: ^4.5
- symfony/cache: ^7.3
- symfony/console: ^6.4
- symfony/mailer: ^7.3
- symfony/property-access: ^7.3
- symfony/serializer: ^7.3
- symfony/validator: ^7.3
- symfony/yaml: ^7.3
- vlucas/phpdotenv: ^5.1
Requires (Dev)
- aws/aws-sdk-php: ^3
- filestack/filestack-php: ^1.1
- m4tthumphrey/php-gitlab-api: ^12.0
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^12.2
- rector/rector: ^2.1
- slevomat/coding-standard: ^8.19
- squizlabs/php_codesniffer: ^3.13
Suggests
- aws/aws-sdk-php: Required by Ubix\Service\Blob\S3BlobService (S3 blob storage)
- filestack/filestack-php: Required by Ubix\Service\Blob\FilestackBlobService (Filestack blob storage)
- m4tthumphrey/php-gitlab-api: GitLab API client for CLI tooling that talks to GitLab
Provides
None
Conflicts
None
Replaces
None
README
A PHP 8.4+ / Svelte 5 application framework that ships with its tooling. Install it, don't fork it: the framework arrives through Composer and npm, your project keeps its own namespace and git history, and uBixVault holds its secrets.
| Package | Registry | What |
|---|---|---|
ubixsys/ubixcore |
Composer | The framework (Ubix\ namespace): CLI, HTTP building blocks, typed-contract bases, migrations, the Ubix coding standard, PHPStan baseline, PHPUnit base classes |
ubixsys/ubixcore-skeleton |
Composer | The create-project template — repo |
@ubixsys/ubixcore |
npm | The Svelte 5 component library |
One v* tag publishes all three with the same version. License: BSD-3-Clause.
Start a project
composer create-project ubixsys/ubixcore-skeleton acme cd acme php bin/ubix list # the framework's commands, plus yours APP_NAME=HelloApi php -S 127.0.0.1:8080 -t public # curl /health php bin/ubix code:review # phpcs · phpstan (level max) · phpunit
The skeleton's README.md is the developer quickstart; its docs/ci-setup.md is the
operator's checklist for a green pipeline (runner, registry access, CI variables,
uBixVault secrets, Kubernetes prerequisites). The full write-up, including a worked
installation scenario, is on ubixsys.com.
Working on the framework
Requirements: PHP 8.4+, Composer 2, Node 20+ (for js/Ubix), a MariaDB reachable for
the SQL-layer tests (CI uses sql/ubixcore_test.sql rebuilt by database:resetSchema test).
composer install git config core.hooksPath .githooks # pre-push gate: bin/ubix code:review --phpunit=off cp .env.example .env # optional for local dev; CI and containers take their environment from uBixVault / the pod spec vendor/bin/phpunit # framework tests vendor/bin/phpstan # level max, bleeding edge vendor/bin/phpcs # the Ubix standard bin/ubix code:review # all three as one gate cd js/Ubix && npm install && npm run prepack # the Svelte library (svelte-package + publint)
Layout:
php/Ubix/ the framework — Bootstrap/, Console/, Controller/, Middleware/, Repository/,
DataType/, Model/, Payload/, Service/, Tests/ (shipped PHPUnit bases),
ruleset.xml + Sniffs/ (the Ubix phpcs standard), phpstan.neon (baseline)
skeleton/ the create-project template, published by the tag pipeline
js/Ubix/ @ubixsys/ubixcore
tests/ framework tests, mirroring php/Ubix/
sql/ ubixcore_test.sql (CI fixture) + the tracker's init migration
docs/standards/ the house standards hosts inherit
docs/projects/ how this repo became a framework + skeleton (ubixcore-oss/)
bin/ubix · public/index.php thin entry points, same shape as the skeleton's
Ubix\ is reserved for the framework; product code never lives here. Products built
on uBixCore live in their own host repos generated from the skeleton.
Releasing
Tag dev: git tag -a v0.2.0 && git push origin v0.2.0. The tag pipeline publishes the
framework and the npm package from this project's registries and subtree-splits
skeleton/ into ubixsys/ubixcore-skeleton. Hosts upgrade with
composer update ubixsys/ubixcore and commit the lock.
Coordination
Several agent sessions may work this repo at once. Register a lane in AGENTS-COORD.md
(copied from the template) before branching; dev is MR-only. Full rules in
docs/standards/branching-and-git-workflow.md.