jield / framework
A modular PHP framework built on top of Laminas, Doctrine, and other powerful libraries, designed to provide a flexible and scalable foundation for web applications.
Requires
- php: ~8.4.0 || ~8.5.0 || ~8.6.0
- ext-curl: *
- ext-dom: *
- ext-fileinfo: *
- ext-igbinary: *
- ext-intl: *
- ext-zlib: *
- assetic/framework: ^3.1.3
- beberlei/doctrineextensions: ~v1.5.0
- bshaffer/oauth2-server-php: ^1.14.1
- codename/parquet: ^0.7
- doctrine/common: ^3.5
- doctrine/dbal: ^4.4
- doctrine/doctrine-laminas-hydrator: ^4
- doctrine/migrations: ^3.9
- doctrine/orm: ^3.6
- firebase/php-jwt: ^6.11 || ^7.0
- gedmo/doctrine-extensions: ~v3.22.0
- gsteel/dot: ^1.9.0
- jetbrains/phpstorm-attributes: ^1
- jield-webdev/azure-blob-storage: dev-main
- laminas/laminas-authentication: ^3
- laminas/laminas-cache: ^4.3.0
- laminas/laminas-cache-storage-adapter-filesystem: ^3.3.0
- laminas/laminas-cache-storage-adapter-memory: ^3.3.0
- laminas/laminas-cache-storage-adapter-redis: ^3.3.0
- laminas/laminas-cli: ^1.16
- laminas/laminas-config-aggregator: ^1.20
- laminas/laminas-diactoros: ^3.5
- laminas/laminas-eventmanager: ^3.15
- laminas/laminas-filter: ^3.4.0
- laminas/laminas-http: ^3.0
- laminas/laminas-hydrator: ^5
- laminas/laminas-i18n: ^3.0
- laminas/laminas-inputfilter: ^3
- laminas/laminas-navigation: ^2.4
- laminas/laminas-paginator: ^3.1
- laminas/laminas-permissions-acl: ^3.0
- laminas/laminas-permissions-rbac: ^3.7 || ^4.0
- laminas/laminas-router: ^4
- laminas/laminas-serializer: ^4.0
- laminas/laminas-servicemanager: ^4
- laminas/laminas-session: ^3.0
- laminas/laminas-stdlib: 4.0.x-dev as 3.21.0
- laminas/laminas-translator: ^2
- laminas/laminas-uri: ^2.15
- laminas/laminas-validator: ^3.16
- laminas/laminas-view: ^3.1.0
- mailjet/mailjet-apiv3-php: ^v1.6.6
- monolog/monolog: ^3.10
- netglue/laminas-messenger: ^2.5.0
- nyholm/psr7: ^1.8
- phpoffice/phpspreadsheet: ^5.0
- psr/container: ^2
- psr/link: ^2.0
- samsonasik/array-lookup: ^2
- scssphp/scssphp: ^2.0
- seld/jsonlint: ^1.9
- sendgrid/sendgrid: ^8.1.11
- solarium/solarium: ^7
- swagger-api/swagger-ui: ^5.20
- symfony/doctrine-messenger: ^8.0
- symfony/http-client: ^8.1
- symfony/mailer: ^8.0
- tecnickcom/tc-lib-pdf: ^8.83
- twbs/bootstrap: ^5.3.8
- twig/twig: ^4
- webimpress/safe-writer: ^2.0
- webmozart/assert: ^2.0
- zircote/swagger-php: ^7.3
Requires (Dev)
- php-parallel-lint/php-parallel-lint: ^1.4
- phpstan/phpstan: 2.*
- phpunit/phpunit: ^13.4
- rector/rector: ^2.8.4
- roave/security-advisories: dev-latest
- squizlabs/php_codesniffer: ^4.0
- symfony/css-selector: ^8.0
- symfony/dom-crawler: ^8.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-11-07 20:09:31 UTC
README
A modular PHP framework built on Laminas, Doctrine, and Twig.
The first planned release is 0.1.0-alpha.1, packaging the current main.
The release path is 0.x alpha → 0.x beta → 0.x RC → 1.0.0. Prerelease APIs
and configuration can change; see the release policy and
changelog.
Install in another project
The current dependency stack supports PHP 8.4 and 8.5. Install the extensions
required by Composer, including igbinary and redis (^6.0).
Until the repository is registered on Packagist, add its VCS URL to the consuming application's rootcomposer.json:
{
"repositories": [
{
"type": "vcs",
"url": "https://github.com/jield-webdev/jield-framework"
}
],
"minimum-stability": "dev",
"prefer-stable": true,
"require": {
"jield/framework": "0.1.0-alpha.1",
"laminas/laminas-stdlib": "4.0.x-dev as 3.21.0"
}
}
Use the actual repository URL if the repository is hosted elsewhere. This works
once v0.1.0-alpha.1 has been pushed to that repository. For a private repository,
configure Composer's authentication separately.
composer update
In an existing project with a lock file, limit the update to these packages with
composer update jield/framework laminas/laminas-stdlib --with-all-dependencies.
The alpha needs development versions of several Laminas packages and Azure Blob
Storage, plus Twig 4 alpha. The consuming application must allow these versions:
a dependency's minimum-stability is ignored. The Stdlib alias must also be
repeated in the application because inline aliases are root-only. An @alpha
flag on jield/framework alone does not allow its development dependencies.
prefer-stable keeps other packages on stable versions where constraints permit.
Commit the application's lock file so deployments use the tested references.
After Packagist registration, remove the VCS entry and use the same requirements.
For deliberate updates within the first alpha series, replace the exact framework
constraint with ~0.1.0@alpha. To test the moving development branch, use
dev-main; its Composer branch alias is 0.1.x-dev.
When another library depends on this alpha, its final consuming application must carry the repository, stability configuration, and Stdlib alias too. Composer does not inherit those root settings from libraries.
Application bootstrap and PDF fonts
Load the framework bootstrap before creating the application. It loads Composer and registers the current Laminas compatibility adapters:
require __DIR__ . '/vendor/jield/framework/autoload.php';
Composer does not execute scripts belonging to dependencies. Applications using
PDF rendering should add these root scripts (adjust vendor/ if customized):
{
"scripts": {
"pdf-fonts": "@php vendor/jield/framework/bin/build-pdf-fonts.php",
"post-install-cmd": [
"@pdf-fonts"
],
"post-update-cmd": [
"@pdf-fonts"
]
}
}
Run composer pdf-fonts once after adding the scripts. Font preparation downloads
upstream font sources on its first run; later runs reuse generated fonts.
Development and releases
composer install composer release:check
composer.lock records the dependencies tested by CI and releases; update it
deliberately during development. It does not constrain dependencies in consuming
projects and is excluded from distribution archives.
After committing release changes on main:
composer release -- 0.1.0-alpha.1 --dry-run composer release -- 0.1.0-alpha.1 git push origin refs/tags/v0.1.0-alpha.1
The release command validates the version, phase order, changelog, clean main,
and quality checks before creating an annotated local tag. Publishing and the
1.0.0 acceptance criteria are described in the release guide.
Jield BV