1. Go to this page and download the library: Download 4slv/yaml-config library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
4slv / yaml-config example snippets
$config = new Config($date);
$fatherName = $config
->getFamily()
->getFather()
->getName();
$dateList = [
'2018-04-17',
'2019-09-12',
'2017-09-01'
];
foreach($dateList as $date){
$dateTime = new DateTime($date);
$config = new Config($dateTime);
$doterAgeList[] = $config
->getFamily()
->getDoter()
->getAge();
}
use YamlConfig\ClassCodeGenerator\ConfigClassTreeGenerator;
use YamlConfig\YamlFileToTree;
$configGenerator = new ConfigClassTreeGenerator();
$yamlFileToTree = new YamlFileToTree(); // объект преобразователь конфигурационного файла в конфигурацию
$yamlFileToTree
->setConfigRelativePath($organizationsRelativePath); //относительный путь расположения yaml-файл с настройками
$configGenerator
->setProjectPath($rootDir) // путь к папке проекта
->setYamlFileToTree($yamlFileToTree) // объект преобразователь конфигурационного файла в конфигурацию
->setConfigCodeRelativePath($organizationsCodeRelativePath) // относительный путь к папке в которой будут сгенерирован код конфига
->setConfigName('Family') // название класса конфига
->setConfigNamespace('Config\Family') // пространство имён конфига
->generate(); // Генерация кода конфига
>
>
>namespace Config\Interfaces\Family;
>
>use YamlConfig\InterfaceCodeGenerator\InterfaceConfigNode;
>use Config\Interfaces\Family\Family\Father;
>use Config\Interfaces\Family\Family\Doter;
>
>
>interface Family extends InterfaceConfigNode {
>
> /** @return Father отец */
> public function getFather();
>
> /** @return Doter дочь */
> public function getDoter();
>
>}
>
>
>
>namespace Config\Interfaces\Family\Family;
>
>use YamlConfig\InterfaceCodeGenerator\InterfaceConfigNode;
>
>
>interface Doter extends InterfaceConfigNode {
>
> /** @return string отец */
> public function getName();
>
> /** @return int дочь */
> public function getAge();
>
>}
>
>
>
>use YamlConfig\InterfaceCodeGenerator\ConfigInterfaceTreeGenerator;
>use \YamlConfig\YamlFileToTree;
>
>$configInterfaceTreeGenerator = new ConfigInterfaceTreeGenerator();
>$yamlFileToTree = new YamlFileToTree(); // объект преобразователь конфигурационного файла в конфигурацию
>$yamlFileToTree
> ->setConfigRelativePath($organizationsRelativePath); //относительный путь расположения yaml-файл с настройками
>$configInterfaceTreeGenerator
> ->setProjectPath($rootDir) // путь к папке проекта
> ->setYamlFileToTree($yamlFileToTreeInterface) // объект преобразователь конфигурационного файла в конфигурацию
> ->setConfigCodeRelativePath($organizationsCodeRelativePath) // относительный путь к папке в которой будут сгенерирован код конфига
> ->setConfigName('Family') // название класса конфига
> ->setConfigNamespace('Config\Interfaces\Family') // пространство имён конфига
> ->generate();
>
>
>
>namespace Config\Interfaces\Family;
>
>use YamlConfig\InterfaceCodeGenerator\InterfaceConfigNode;
>
>/**
> * Наименование интерфейса(Комментарий будет использоваться как комментарий к интерфейсу)
> */
>interface FamilyMember extends InterfaceConfigNode {
>
> /** @return string наименование свойства (Комментарий будет использоваться как комментарий к гетерру) */
> public function getName();
>
>}
>
>
>
>namespace Config\Interfaces\Family;
>
>use YamlConfig\InterfaceCodeGenerator\InterfaceConfigNode;
>
>/**
> * Наименование интерфейса
> */
>interface FamilyFather extends InterfaceConfigNode {
>
> /** @return string наименование свойства */
> public function getName();
>
> /** @return string наименование свойства */
> public function getHobby();
>
>}
>
>
>
>use YamlConfig\InterfaceCodeGenerator\ConfigInterfaceListTreeGenerator;
>use \YamlConfig\YamlFileToTree;
>
>$configInterfaceTreeGenerator = new ConfigInterfaceListTreeGenerator();
>$yamlFileToTree = new YamlFileToTree(); // объект преобразователь конфигурационного файла в конфигурацию
>$yamlFileToTree
> ->setConfigRelativePath($organizationsRelativePath); //относительный путь расположения yaml-файл с настройками
>$configInterfaceTreeGenerator
> ->setProjectPath($rootDir) // путь к папке проекта
> ->setYamlFileToTree($yamlFileToTreeInterface) // объект преобразователь конфигурационного файла в конфигурацию
> ->setConfigCodeRelativePath($organizationsCodeRelativePath) // относительный путь к папке в которой будут сгенерирован код конфига
> ->setConfigName('Family') // название класса конфига
> ->setConfigNamespace('Config\Interfaces\Family') // пространство имён конфига
> ->generate();
>
>
>use YamlConfig\ClassCodeGenerator\ConfigClassTreeGenerator;
>use YamlConfig\YamlFileToTree;
>
>$configGenerator = new ConfigClassTreeGenerator();
>$yamlFileToTree = new YamlFileToTree(); // объект преобразователь конфигурационного файла в конфигурацию
>$yamlFileToTree
> ->setConfigRelativePath($organizationsRelativePath); //относительный путь расположения yaml-файл с настройками
>$yamlFileToTreeHierarchicalInterface = new YamlFileToTree(); // объект преобразователь конфигурационного файла в конфигурацию
>$yamlFileToTreeHierarchicalInterface
> ->setConfigRelativePath($organizationsRelativePath); //относительный путь расположения yaml-файл с настройками
>$yamlFileToTreeDescribedInterfaces = new YamlFileToTree(); // объект преобразователь конфигурационного файла в конфигурацию
>$yamlFileToTreeDescribedInterfaces
> ->setConfigRelativePath($organizationsRelativePath); //относительный путь расположения yaml-файл с настройками
>$configGenerator
> ->setProjectPath($rootDir) // путь к папке проекта
> ->setYamlFileToTree($yamlFileToTree) // объект преобразователь конфигурационного файла в конфигурацию
> ->setConfigCodeRelativePath($organizationsCodeRelativePath) // относительный путь к папке в которой будут сгенерирован код конфига
> ->setConfigName('Family') // название класса конфига
> ->setConfigNamespace('Config\Family') // пространство имён конфига
> ->setYamlFileToTreeHierarchicalInterfaces($yamlFileToTreeHierarchicalInterface) // преобразователь конфигурационного файла в конфигурацию для иерархических интерфейсов
> ->setYamlFileToTreeDescribedInterfaces($yamlFileToTreeDescribedInterfaces) // преобразователь конфигурационного файла в конфигурацию для описанных интерфейсов
> ->setConfigHierarchicalInterfacesNamespace('Config\Interfaces\HierarchicalInterface') // пространство имён иерархических интерфейсов для узлов конфига
> ->setConfigDescribedInterfacesNamespace('Config\Interfaces\DescribedInterfaces') // пространство имён описанных интерфейсов для узлов конфига
> ->generate(); // Генерация кода конфига
>
>
>
>namespace Config\Family\Family;
>
>use YamlConfig\InterfaceCodeGenerator\InterfaceConfigNode;
>use Config\Interfaces\HierarchicalInterface\Family\Family\Father as FatherInterface;
>use Config\Interfaces\DescribedInterfaces\FamilyFather as FamilyFatherInterface;
>use use Config\Interfaces\DescribedInterfaces\FamilyMember as FamilyMemberInterface;
>
>/**
> * Наименование интерфейса
> */
>class Father extends InterfaceConfigNode implements FatherInterface, FamilyFatherInterface, FamilyMemberInterface
>{
>
> /** @return string наименование свойства */
> public function getName()
> {
> return $this->getActualProperty('name');
> }
>
> /** @return string наименование свойства */
> public function getHobby()
> {
> return $this->getActualProperty('hobby');
> }
>
>}
>
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.