Convert Zend config ini рд╕реЗ yamlред рдиреБрдХрд╕рд╛рди

рдПрдХ рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдореБрдЭреЗ рд╣рдореЗрд╢рд╛ рдпрдорд▓ рдкрд╕рдВрдж рдерд╛ред рдРрд╕рд╛ рд╣реБрдЖ рдХрд┐ рдореИрдВ рдЬреНрдпрд╛рджрд╛рддрд░ Zend рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ ZF рдиреЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ yaml рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдлрд┐рд░ рдореИрдВрдиреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╡рд░реНрдЧ рдЬреЛрдбрд╝рд╛ рдЬреЛ рд╕рд┐рдореНрдлрдиреА рдШрдЯрдХ sfYaml рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡рд░рдг рдерд╛ рдФрд░ рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЪреБрдкрдЪрд╛рдк yaml рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд▓рдЧрд╛ред

рдЕрдВрдд рдореЗрдВ, ZF 1.11.12 рдореЗрдВ, Zend_Config_Writer_Yaml рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдФрд░ рдореИрдВрдиреЗ рдЗрдирдлреА рд╕реЗ yaml рдореЗрдВ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдмрджрд▓рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛


рджреЛ рдмрд╛рд░ рд╕реЛрдЪрдиреЗ рдХреЗ рдмрд┐рдирд╛, рдореБрдЭреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рддреИрдпрд╛рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдорд┐рд▓реАред рдХреБрдЫ рдРрд╕рд╛ рджрд┐рдЦ рд░рд╣рд╛ рдерд╛ред

$inputfile = APPLICATION_PATH . '/configs/application.ini'; $outputfile = APPLICATION_PATH. '/configs/application.yml'; $config = new Zend_Config_Ini($inputfile, null, array('allowModifications' => false, 'skipExtends'=> true)); $writer = new Zend_Config_Writer_Yaml(); $writer->write($outputfile, $config, true, true); 

Dachshund, рдпрд╣ рд╕рд░рд▓ рджрд┐рдЦрддрд╛ рд╣реИ, рдХреЗрд╡рд▓ ZF рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреЛрдИ рднреА рд╢реМрдХрд┐рдпрд╛ рдЧрддрд┐рд╡рд┐рдзрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдЪреНрдЫреА рдирд╣реАрдВ рд╣реИред рдореИрдВрдиреЗ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рд╕рдм рдХреБрдЫ рд╡реИрд╕рд╛ рд╣реА рд╣реЛ рдЧрдпрд╛ рдЬреИрд╕рд╛ рдХрд┐ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЧрдП рдкрд░реАрдХреНрд╖рдг - рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдареАрдХ рд╣реИ, рдЕрдм рд╣рдо рдпреБрджреНрдз рд╕рд░реНрд╡рд░ рдкрд░ рднреА рдРрд╕рд╛ рд╣реА рдХрд░реЗрдВрдЧреЗред

рдХреБрдЫ рд╕рдордп рдмрд╛рдж, рд╣рдореЗрдВ mysql рдХреА рд╕рд╛рдорд╛рдиреНрдп рддреНрд░реБрдЯрд┐ рд╕реЗ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рдиреЗ рд▓рдЧреА: 1205 рд▓реЙрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛; рдореИрдВ рд╕рд┐рд░реНрдл рдПрдХ рдЕрдиреБрд░реЛрдз рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдФрд░ рд▓реЙрдХ рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВред рд╣рдо SHOW PROCESSLIST рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рджреЗрдЦрддреЗ рд╣реИрдВред рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХреЗрд╡рд▓ InnoDB рддрд╛рд▓рд┐рдХрд╛рдУрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдФрд░ 90-95% рд╣рдорд╛рд░реЗ рдкрд╛рд╕ MyISAM рд╣реИред рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЧреБрдЧреБрд▓ рдХрд┐рдпрд╛ - рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЬрди рдирд┐рд░реНрджреЛрд╖ рд╕реНрдерд┐рддрд┐ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЛред рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдХреЗрд╡рд▓ рдереНрд░реЗрдбреНрд╕ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реБрдП рд╣реИрдВ рдРрд╕рд╛ рдХреЛрдИ рд▓реЗрдирджреЗрди рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЕрдиреНрдп рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░ рд╕рдХреЗред
рдореИрдВ рдкреНрд░рд╢рд╛рд╕рдХреЛрдВ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ - рдЙрдирд╕реЗ рдореВрд▓реНрдпрд╡рд╛рди рдХреБрдЫ рднреА рдирд╣реАрдВ рд╕реАрдЦрд╛ред рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ ... рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдЙрддреНрд╕рд╛рд╣ред

рдареАрдХ рд╣реИ, рдЖрдкрдХреЛ рдХреБрдЫ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╣рдордиреЗ рдмрд╣реБрдд рдкрд╣рд▓реЗ рдЧрд┐рдпрд░рдореИрди рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛ - рддрджрдиреБрд╕рд╛рд░ рдРрд╕реЗ рд╢реНрд░рдорд┐рдХ рд╣реИрдВ рдЬреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд╢реИрддрд╛рди рд╣реИрдВ рдФрд░ рд▓рдВрдмреЗ рдХрдиреЗрдХреНрд╢рди рдЦреЛрд▓рддреЗ рд╣реИрдВред рдЙрди рдкрд░ рдкрд╛рдк рдХрд░рдиреЗ рд▓рдЧреЗ - рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░реВрдБрдЧрд╛ред рдФрд░ рддрд╛рд▓рд╛ рдиреЗ рдорджрдж рдХреАред рд▓реЗрдХрд┐рди рдХрд╛рд░рдг рдЕрднреА рднреА рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдп рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдПрдХ рдЖрджрд┐рдо рд╡рдЪрди рдЬреЛрдбрд╝рд╛ - рд╕рдм рдХреБрдЫ рд╢рд╛рдВрдд рд╣реЛрдиреЗ рд▓рдЧрддрд╛ рд╣реИред

рдЕрдЧрд▓реЗ рджрд┐рди рдореИрдВ рд╕рд╛рдмреБрди рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реВрдБ - рд╡рд╣реА рдХрд╣рд╛рдиреАред рдЗрд╕реА рддрд░рд╣ рдХреА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╕рдордп-рд╕рдордп рдкрд░ рдЖрддреА рд░рд╣рддреА рд╣реИрдВред

рдпрд╣рд╛рдБ рдореИрдВ рдкреВрдЫрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБ рдХрд┐ рдХрд┐рд╕рдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд▓рд┐рдпрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣реБрдЖ рд╣реИ?

рд╕реБрдмрд╣ рдореЗрдВ, рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХреА рд╢рд┐рдХрд╛рдпрдд рд╣реЛрддреА рд╣реИ рдХрд┐ рдЧреНрд░рд╛рд╣рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ - рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрдиреБрд░реЛрдз рд╣реИ, рд▓реЗрдХрд┐рди рдбреЗрдЯрд╛ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИред рддреБрд░рдВрдд рдореБрдЭреЗ рдХрд▓ рдХреА рдордЬрдмреВрд░ рдХрдорд┐рдЯрд┐рдпрд╛рдБ рдпрд╛рдж рд╣реИрдВред рдЦреИрд░, рдХреНрдпрд╛ рдордЬрд╛рдХ рдирд╣реАрдВ рд╣реИ, рдЪрд▓реЛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ
"% autocommit%" рдЬреИрд╕реЗ рдЪрд░ рджрд┐рдЦрд╛рдПрдВ;
рдореБрдЭреЗ рд╕рдм рдХреБрдЫ рд╕рд╣реА рд╣реИ, рд╡рд╣реА рдмрд╛рдд рд╣реИ рдЙрдирдХрд╛ php рдФрд░ ... рдбреНрд░рдо рд░реЛрд▓ рдСрдлред (рдЗрд╕ рдмрд┐рдВрджреБ рддрдХ, рд╕рднреА рдмреБрд░реЗ рд╢рдмреНрджреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рд╡реЗрд╢рдХреЛрдВ рдХреЛ рдпрд╛рдж рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдХреЛрдИ рджреЛрд╖ рдирд╣реАрдВ рд╣реИ)

рдирддреАрдЬрддрди, рд╕рдм рдХреБрдЫ рдордХреНрдХреЗрджрд╛рд░ рдФрд░ рд╕рд░рд▓ рд╣реЛ рдЧрдпрд╛ред

Dachshunds ... рдареАрдХ рд╣реИ, рдпрд╣ рдХреИрд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рдЖрдЦрд┐рд░рдХрд╛рд░, рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛, рд╣рдо рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ рдФрд░ рд╣рдо рдПрдХ рддреБрдЪреНрдЫ рд╡рд┐рд╕реНрддрд╛рд░ рдкрд╛рддреЗ рд╣реИрдВред

resource.multidb.dbname.adcape = "pdo_mysql"
resource.multidb.dbname.host = "localhost"
resource.multidb.dbname.username = "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛"
resource.multidb.dbname.password = "рдкрд╛рд╕"
resource.multidb.dbname.dbname = "dbname"
Resources.multidb.dbname.driver_options.1002 = "рд╕реЗрдЯ рдирд╛рдо utf8";

рдзрд░реНрдорд╛рдВрддрд░рд┐рдд

 рд╕рдВрд╕рд╛рдзрди: 
   multidb: 
     dBNAME: 
       рдПрдбрд╛рдкреНрдЯрд░: pdo_mysql
       рд╣реЛрд╕реНрдЯ: рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ
       рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛
       рдкрд╛рд╕рд╡рд░реНрдб: рдкрд╛рд╕
       dbname: dbname
       driver_options: 
         - рд╕реЗрдЯ NAMES utf8;


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдм 1002 рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ 0. рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ, рдпрджрд┐ рдЖрдк рдереЛрдбрд╝рд╛ рдФрд░ рдЧрд╣рд░рд╛рдИ рд╕реЗ рджреЗрдЦреЗрдВрдЧреЗ рддреЛ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ
Zend_Db рдореЗрдВ
// рдкреАрдбреАрдУ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░рд┐рдгрд╛рдо рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬреЗ рдЧрдП рдирд┐рд░рдВрддрд░ рдорд╛рди:
const ATTR_AUTOCOMMIT = 0;
...

рдЦреИрд░, рдЕрдВрдд рдореЗрдВ, рдЗрд╕ рдЕрд╡рд╕рд░ рдХреЗ рдирд╛рдпрдХ - Zend_Config_Writer_Yaml
 /** * Service function for encoding YAML * * @param int $indent Current indent level * @param array $data Data to encode * @return string */ protected static function _encodeYaml($indent, $data) { reset($data); $result = ""; $numeric = is_numeric(key($data)); // look here foreach($data as $key => $value) { if(is_array($value)) { $encoded = "\n".self::_encodeYaml($indent+1, $value); } else { $encoded = (string)$value."\n"; } $result .= str_repeat(" ", $indent).($numeric?"- ":"$key: ").$encoded; // and look here } return $result; } 


рдореИрдВ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрджрд┐ рдЖрдк SymfonyCompords / YAML / sfYaml.php рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдореИрдВрдиреЗ рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдерд╛ (рдореИрдВрдиреЗ ZF рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдЖрд╡рд░рдг рд▓рд┐рдЦрд╛ рдерд╛) рдФрд░ рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ
$ рд▓реЗрдЦрдХ-> setYamlEncoder (рд╕рд░рдгреА ('App_Yaml', 'рдбрдВрдк'));
рддрдм рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рддреЛ рджреЛрд╕реНрддреЛрдВ, рдЬрдм рдпрд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ рддреЛ рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВред

рдХрдбрд╝рд╛рдИ рд╕реЗ рдиреНрдпрд╛рдп рди рдХрд░реЗрдВ - рдПрдХ рд╣рдм рдкрд░ рдкрд╣рд▓реА рдкреЛрд╕реНрдЯ

Source: https://habr.com/ru/post/In148574/


All Articles