Lyra Base is the core application for the Lyra software. it is sometimes used as a base for other Lyra components or it should be used in combination with other Lyra components. The application has some basic methods which will help the developer to use different Symfony components. You can define service and parameters configurations in this package which will have the same result as of Symfony.
Lyra Base is available in packagist, so you should just add rzuw/lyra-base
as dependency to your composer.json
file:
{
"require": {
"rzuw/lyra-base" : "*"
}
}
You can also clone or fork this repository in github and work with your own implementation:
git clone ssh://git@github.com/uniwue-rz/lyra-base.git
Then add it as local folder in composer:
{
"repositories": [
{
"type": "path",
"url": "/path-to-git-clone"
}
],
"require": {
"rzuw/lyra-base": "*"
}
}
Or add directly from the git repository:
{
"require": {
"rzuw/lyra-base": "*"
},
"repositories": [
{
"type": "vcs",
"url": "ssh://git@github.com/uniwue-rz/lyra-base.git"
}
]
}
Then using composer:
composer update
If you dont want to use composer you have to write your own autoloader
which should load every needed dependency in the package.
Lyra Base has a builtin support of symfony/config
component. It can automatically read and parse symfony configuration files so
you dont need extra configurations for the applications that have Lyra Base. As Every Lyra Applications should have a name
the configurations should be available in the following default location or should be added manually with the help of paths
array. The default locations are:
/etc/[name]/
/$HOME/.[name]/
. # the __DIR__
The configuration should be in the following format:
\S+_[env].[format]
[env]
can be any string. [format]
should be one of xml
, yaml
or php
. How the configuration is written can be seen in the following examples:
<?xml version="1.0" encoding="utf-8"?>
<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<parameters>
<parameter key="lastname">smith</parameter>
</parameters>
</container>
parameters:
firstname : john
<?php
$container->setParameter('occupation', 'known');
The precedence for the configuration files are as follows from most significant to lease:
- *.php
- *.xml
- *.yml
To initiate and read the configuration:
$base = new Base("newApp", array("root_dir"));
$config = $base->getConfigurationContainer();
// This compiles the configuration
$config->compile();
$config->getParameter("lastname"); // smith
$config->getParameter("firstname"); // john
$config->getParameter("occupation"); // known
More through Information can be found in following links:
- How to Create Friendly Configuration for a Bundle
- How to Load Service Configuration inside a Bundle
- Loading Resources
- Defining and Processing Configuration Values
- Introduction to Parameters
To test the Lyra Base on the given machine you need to use composer to install the dependencies first.
composer install
composer update
then simply running:
phpunit
will start to test the package.