mikejw/empathy

Empathy MVC

Installs: 1 968

Dependents: 1

Suggesters: 0

Security: 0

Stars: 2

Watchers: 1

Forks: 0

Open Issues: 0

pkg:composer/mikejw/empathy


README

 

Empathy logo

empathy.sh

Welcome to the Empathy (micro MVC) PHP Framework project. The project has existed since 2008 and is geared towards allowing anyone to create PHP web applications, with following properties:

  • Strict MVC pattern
  • Modular compatible libraries
  • Lightweight
  • Fast
  • Extensible

Documentation

See getting-started.md.

Licence

Empathy and officially released extension libraries are now distributed under an MIT license. See LICENSE.

Versioning & stability policy

Empathy follows semantic versioning. Early releases (v1.x → v4.x) reflect a fast-evolving design phase of the framework. Particularly the interplay beteen models and the ORM as it was security hardened. Plus the changes required for PHP 8.4 support. As the API matured, each breaking change was given its own major release.

With this history, major version bumps should not be seen as instability or sloppy development — but as honest signposts of sound, considered evolution.

Going forward (from v5.0.0 onward):

  • Breaking changes will be batched into less-frequent major releases.

  • Where possible, functionality will first be deprecated in a release, and only removed in the next major.

  • Minor and patch versions will avoid breaking existing public APIs.

  • Each major release will include a clear upgrade guide (e.g. a file like UPGRADING-5.0.md) with before/after code examples for users.

  • Users who prefer stability over latest features can safely pin to a major version (e.g. "vendor/empathy": "^4.0") and skip new majors until explicitly ready.

Testing the code itself

If you want to run tests from a version of Empathy that has been checked out in base-docker connect to the app container first, change to the empathy vendor directory and run composer install:

docker exec -it -u www-data app /bin/bash
cd ./vendor/mikejw/empathy/
php ../../../composer.phar install --prefer-source

Within the 'Empathy Architype Application' config file (/eaa/config.yml), set: doc_root to the full location of the eaa directory, (which is used for dummy configuration) e.g:

---
doc_root: /var/www/project/vendor/mikejw/empathy/eaa

For the elibs plugin configuration (within /eaa/config.yml), set testing mode to 1. (This makes sure that the elibs repo containing Smarty can be found.) i.e:

plugins:
  -
    name: ELibs
    version: 1.0
    config: '{ "testing": 1 }'

Change to the t directory from the root of the empathy repo and run phpunit:

cd /var/www/project/vendor/mikejw/empathy/t
php ../vendor/bin/phpunit .