Download the PHP package monarc/core without Composer

On this page you can find all versions of the php package monarc/core. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package core

MONARC Core project

Development notes concerning the following:

Entity

Creation of entities should be performed as a simple object instantiation, e.g.

$myEntityClass = (new MyEntityClass())
    ->setName('name')
    ->setCode('codde');

The entity should have a single responsibility and do not perform any database related operations itself.

Note! The AbstractEntity inheritance is going to be removed and the entities filters methods cleaned uo.

For generating migrating file & migrate DB with adding/deleting/changing column:

php ./vendor/bin/doctrine-module migrations:diff
php ./vendor/bin/doctrine-module migrations:migrate

Entity Table

Implementation of table (repositories) classes are done in Model/Table folder and extend AbstractTable.

In the table constructor there is mandatory to pass an entity class name that the table is responsible to manage, e.g.

public function __construct(EntityManager $entityManager)
{
    parent::__construct($entityManager, \MyEntityNamespace\MyEntityClass::class);
}

The table methods, responsible for fetching data from the DB should start from findBy prefix. AbstractTable has methods, which help with the basic entities operations.

In the module config file there is required to define an way of the table class creation. In most of the cases it works well with Laminas\Di\Container\AutowireFactory:

\MyEntityNamespace\MyEntityClass::class => AutowireFactory::class,

Controller

One of the controller can be extend when particular ones created:

There is a trait helper class that can be used in the controllers to help with the output rendering: Monarc\Core\Controller\Handler\ControllerRequestResponseHandlerTrait

Restful application methods to be defined:

In module.config.php, controllers are usually defined in the configuration like:

ControllerNameSpace\MyController::class => AutowireFactory::class,

Service

Note New created services classes should not extend AbstractService, is going to be be removed in the future.

In the module config file the services container looks like:

ServiceNamescpace\MyService::class => Laminas\Di\Container\AutowireFactory::class,

or, in case if config needs to be injected:

ServiceNamescpace\MyService::class => Laminas\ServiceManager\AbstractFactory\ReflectionBasedAbstractFactory::class,

Input Formatters

The input formatters classes aim to perform the [GET] requests data filtering, validating and transforming into a format that can be used directly to prepare the database queries. The formatters classes are enriched with possibilities of handling and preparing the data for search by text, filter by params, ordering and pagination.

Tha basic classes are InputFormatter\AbstractInputFormatter, InputFormatter\FormattedInputParams. The instantiated objects inherited the basic classes are used in the Controllers and the formatted results are passed to the services and to the table classes methods. The tables' classes, inherited the Table\AbstractTable have a certain method findByParams where the FormattedInputParams object is accepted and processed to generate the query.

The trait's method Controller\Handler\ControllerRequestResponseHandlerTrait::getFormattedInputParams helps in the process.

Validators

The validators classes are responsible to validate the post, put and patch requests' data. Every child class of Validator\InputValidator\AbstractInputValidator have to describe a set rules that are used to validate the incoming data.
The validated data can be obtained with use of the methods getValidData, getValidDataSets if isValid result is true.

The trait's method Controller\Handler\ControllerRequestResponseHandlerTrait::validatePostParams helps in the process. It can also handle the batch data requests, that are used for the import operations.

Tests Coverage

The implementation is partially done on MonarcAppFO side, because integration and functional tests should cover the both Core and FrontOffice modules of the MONARC application.

Unit tests can be implemented at a particular projects side.

We might move from the current Core/FrontOffice modules approach to a libraries/responsibility specific and the tests will be moved as well.

License

This software is licensed under GNU Affero General Public License version 3

For more information, the list of authors and contributors is available.

Disclaimer: This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.


All versions of core with dependencies

PHP Build Version
Package Version
Requires php Version ^8.0
ext-json Version *
ext-openssl Version *
ext-intl Version *
robmorgan/phinx Version ^0.13.4
laminas/laminas-mvc Version ^3.1
laminas/laminas-di Version ^3.1
doctrine/doctrine-orm-module Version ^5.1
ramsey/uuid-doctrine Version ^1.5
laminas/laminas-log Version ^2.11
ocramius/proxy-manager Version ^2.13
laminas/laminas-mail Version ^2.10
laminas/laminas-i18n Version ^2.9
laminas/laminas-filter Version ^2.9
laminas/laminas-inputfilter Version ^2.10
laminas/laminas-dependency-plugin Version ^2.0
laminas/laminas-mvc-middleware Version ^2.2
robthree/twofactorauth Version ^1.8
laminas/laminas-i18n-resources Version ^2.9
laminas/laminas-mvc-i18n Version ^1.7
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package monarc/core contains the following files

Loading the files please wait ....