ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ.
1) ΠΠ΅ΡΠ°ΡΡ
ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ., (*5)
ΠΠΎ ΡΡΡΡΠΊΡΡΡΠ΅ yaml ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ yaml ΠΊΠΎΠ½ΡΠΈΠ³Π°. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ yaml:, (*6)
family: # ΡΠ΅ΠΌΡΡ
father: # ΠΎΡΠ΅Ρ
name: Bob # ΠΈΠΌΡ
hobby: # Ρ
ΠΎΠ±Π±ΠΈ
- sport # ΡΠΏΠΎΡΡ
- boardgames # Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΠ΅ ΠΈΠ³ΡΡ
story: | # Π±ΠΈΠΎΠ³ΡΠ°ΡΠΈΡ
ΡΠΎΠ΄ΠΈΠ»ΡΡ Π² ΠΠ°ΡΠ°Π»ΠΎ: # ΠΌΠ΅ΡΡΠΎ ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ
ΡΡΠΈΠ»ΡΡ Π² ΡΠ΅ΡΠΊΠΎΠ²Π½ΠΎ-ΠΏΡΠΈΡ
ΠΎΠ΄ΡΠΊΠΎΠΉ ΡΠΊΠΎΠ»Π΅
doter: # Π΄ΠΎΡΡ
name: Mila # ΠΈΠΌΡ
age: # Π²ΠΎΠ·ΡΠ°ΡΡ
'2017-04-17': 0
'2018-04-17': 1
'2019-04-17': 2
Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π²Π΅ΡΡ
Π½Π΅ΠΌ ΠΈΠ΅ΡΠ°ΡΡ
ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅:, (*7)
<?php
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();
}
ΠΠ° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΡΠΎΠ²Π½Π΅ ΠΏΠΎ ΠΈΠ΅ΡΠ°ΡΡ
ΠΈΠΈ Π±ΡΠ΄ΡΡ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Father ΠΈ Doter. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Doter:, (*8)
<?php
namespace Config\Interfaces\Family\Family;
use YamlConfig\InterfaceCodeGenerator\InterfaceConfigNode;
interface Doter extends InterfaceConfigNode {
/** @return string ΠΎΡΠ΅Ρ */
public function getName();
/** @return int Π΄ΠΎΡΡ */
public function getAge();
}
ΠΠΎΠ΄ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ
ΠΎΠΆ Π½Π° ΠΊΠΎΠ΄ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΠΈΠ³Π°. ΠΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:, (*9)
<?php
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();
2) ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ΡΠΏΠΈΡΠΊΠΎΠΌ.
ΠΡΠΈΠΌΠ΅Ρ ΡΡΡΡΠΊΡΡΡΡ yaml:, (*10)
family_member: # ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°(ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΠΊ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ)
xpath: # Π‘ΠΏΠΈΡΠΎΠΊ xpath ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ
- /family/*[name]
property: # Π‘ΠΏΠΈΡΠΎΠΊ ΡΠ²ΠΎΠΉΡΡΠ² ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π³Π΅ΡΡΠ΅ΡΠΎΠ² Π΄Π»Ρ Π½ΠΈΡ
name: # Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° (ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΠΊ Π³Π΅ΡΠ΅ΡΡΡ)
type: string #ΡΠΈΠΏ ΡΠ²ΠΎΠΉΡΡΠ²Π°
family_father: # ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°
xpath: # Π‘ΠΏΠΈΡΠΎΠΊ xpath ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ
- /family/father[name and hobby]
property:
hobby: # Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°
type: string
name: # Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°
type: string #ΡΠΈΠΏ ΡΠ²ΠΎΠΉΡΡΠ²Π°
ΠΠ°Π½Π½ΡΠΉ yaml Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ 2 ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°:, (*11)
<?php
namespace Config\Interfaces\Family;
use YamlConfig\InterfaceCodeGenerator\InterfaceConfigNode;
/**
* ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°(ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΠΊ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ)
*/
interface FamilyMember extends InterfaceConfigNode {
/** @return string Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° (ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΠΊ Π³Π΅ΡΠ΅ΡΡΡ) */
public function getName();
}
```php
<?php, (*12)
namespace Config\Interfaces\Family;, (*13)
use YamlConfig\InterfaceCodeGenerator\InterfaceConfigNode;, (*14)
/**
* ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°
*/
interface FamilyFather extends InterfaceConfigNode {, (*15)
/** @return string Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° */
public function getName();, (*16)
/** @return string Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° */
public function getHobby();, (*17)
}, (*18)
ΠΠΎΠ΄ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ²:
```php
<?php
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();
3) ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ:, (*19)
<?php
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(); // ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΊΠΎΠ΄Π° ΠΊΠΎΠ½ΡΠΈΠ³Π°
ΠΡΠΈΠΌΠ΅Ρ ΠΊΠ»Π°ΡΡΠ° Father Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ:, (*20)
<?php
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');
}
}