PHPDump - Google Chrome рдХрдВрд╕реЛрд▓ рдореЗрдВ рдбрд┐рдмрдЧрд┐рдВрдЧ рдФрд░ CMS MODX рдХреЗ рд╕рд╛рде рд╕рд╣рднрд╛рдЧрд┐рддрд╛

рд╕реАрдзреЗ рдореБрджреНрджреЗ рдкрд░


рдПрдХ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдЙрддреНрдкрд╛рдж рд╣реИ рдЬреЛ рдореБрдЭреЗ рдбреАрдмрдЧрд┐рдВрдЧ рдореЗрдВ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдорджрдж рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ PhpDump рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред


рдПрдХ рд╕рдордп рдореЗрдВ, CMS MODX рдиреЗ рдореБрдЭреЗ рдЕрдкрдирд╛ рдбрд┐рдмрдЧрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ред рдмреЗрд╢рдХ PHP рдореЗрдВ var_dump, phpConsole, xDebug рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдореИрдВ рдЕрдкрдиреЗ PhpDump рдХреЗ рд╕рд╛рде рд╣реВрдВред


рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рд╕рдорд╛рдзрд╛рди рд╕рд╣реА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╣реИред


рдЖрдк рдЗрд╕реЗ рдХрд┐рддрдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ рдпрд╣ рдЖрдкрдХреЗ рдКрдкрд░ рд╣реИред


рдпрд╣рд╛рдБ рдХреБрдЫ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред




рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ CMS MODX Revo рдореЗрдВ рдЗрд╕реЗ рдХреИрд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдФрд░ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдП


рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ


Apache + PHP 7, CMS MODX Revo 2.7
рдЧрд┐рдЯ + рд╕рдВрдЧреАрддрдХрд╛рд░


рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ


  • рд╕рдВрдЧреАрддрдХрд╛рд░

рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рд╕реЗ рдЕрд▓рдЧ PhpDump рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдБред рдЪреВрдВрдХрд┐ рдЖрдк рдЗрд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕реНрдерд╛рдиреАрдп рд╕рд░реНрд╡рд░ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рд╣рд░ рдЬрдЧрд╣ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред


рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ, рдирд┐рдореНрди рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде composer.json рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:


 { "require":{ "Alpa/PhpDump":"1.*" }, "repositories": [ { "type": "git", "url": "https://github.com/ALexeyP0708/PhpDump.git" }, { "type": "git", "url": "https://github.com/ALexeyP0708/EntityDetails" } ] } 

рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ, $ composer install


рд╕рдВрдЧреАрддрдХрд╛рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдкрд░рд┐рдпреЛрдЬрдирд╛ [directory install]/vendor/PhpDump рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрдЧреА


  • рдЬреАрдЖрдИрдЯреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдкрдирд╛
    рдЯрд░реНрдорд┐рдирд▓ рдХреЗ рд▓рд┐рдП рдХрдорд╛рди
    $ git clone https://github.com/ALexeyP0708/PhpDump.git

рдпрд╛ рдЬрд╝рд┐рдк рдЖрд░реНрдХрд╛рдЗрд╡ рдХреЛ рдЕрдирдЬрд╝рд┐рдк рдХрд░реЗрдВред


рдпрд╣рд╛рдБ GitHub рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ


PhpDumpConsole рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ


Google Chrome рдореЗрдВ, рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЕрдиреБрднрд╛рдЧ рдкрд░ рдЬрд╛рдПрдВ, рдбреЗрд╡рд▓рдкрд░ рдореЛрдб рдЪрд╛рд▓реВ рдХрд░реЗрдВ (рдКрдкрд░реА рджрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ), рдлрд┐рд░ ред


рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ [directory PhpDump]/ChromeExtension/PhpDumpConsole_v1.1 ред


рдкреИрдирд▓ рдореЗрдВ рдПрдХ рд▓рд╛рд▓ рдХреНрд░реЙрд╕рд╣реЗрдпрд░ рдЖрдЗрдХрди рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ - рдПрдХ рд╕рд░реНрдХрд▓ рдореЗрдВ рдПрдХ рдЧрд┐рдпрд░ред рдпрджрд┐ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░ рдЧрд┐рдпрд░ рдиреАрд▓рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╛ рддреЛ рд╕рд░реНрд╡рд░ PhpDump рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдЧреНрд░рд╛рд╣рдХ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред


рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХреА рдЬрд╛рдБрдЪ


рдлрд╝рд╛рдЗрд▓ рджреЗрдЦреЗрдВ [dirictory Php Dump]/tests/test_debugManager.php


рдпрджрд┐ рд╕рдВрдЧреАрддрдХрд╛рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдСрдЯреЛрд▓реИрдбрд░ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╕рд╣реА рдорд╛рд░реНрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред


рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓рд╛рдЗрди рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ


  include_once __DIR__.'/../vendor/autoload.php'; 

рдкрд░


  //include_once __DIR__.'/../vendor/autoload.php'; include_once __DIR__.'/../../../autoload.php'; 

рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЬрд╣рд╛рдБ PhpDump рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рдЙрд╕рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддрдХ рд╡реЗрдм рдкрд╣реБрдБрдЪ рдФрд░ рдирд┐рд╢реБрд▓реНрдХ рд░реВрдЯрд┐рдВрдЧ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред


рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдкрдиреЗ PhpDump рдХреЛ /sites/www/mysite/TestPhpDump рдФрд░ рд╡реЗрдм рд╕рд╛рдЗрдЯ http://mysite/ рдкрд░ рдкрд░реАрдХреНрд╖рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ
http://mysite/TestPhpDump/tests/test_debugManager.php


рдЙрддреНрдкрдиреНрди рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╡рд╛рд▓рд╛ рдкреГрд╖реНрда рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред Google Chrome рдХрдВрд╕реЛрд▓ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреИрдирд▓ рдореЗрдВ рдЧрд┐рдпрд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдкреГрд╖реНрда рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рд╣реЛрдЧрд╛, рдЧрд┐рдпрд░ рдиреАрд▓рд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЕрдм рд╕рд╛рд░реА рдЬрд╛рдирдХрд╛рд░реА рдХрдВрд╕реЛрд▓ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдЧреАред


рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдХреИрд╕реЗ рдЪрд▓рд╛ рдЬрд╛рдП


рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреГрд╖реНрда рдХреЗ рд╢реАрд░реНрд╖ рдкрд░, рдЖрдкрдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:


  include_once '[directory phpdump]/vendor/autoload.php';//   phpdump   . new PhpDump\InitDump(); 

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


рдпрджрд┐ рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪрддреА рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреГрд╖реНрда рдХреЛ Index.php рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ ajax рдЕрдиреБрд░реЛрдз other.php рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдпрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ script.js.php рд╕реЗ рдЧрддрд┐рд╢реАрд▓ js- рдЙрддреНрдкрдиреНрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ), рддреЛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред


рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рд╕рднреА рд░реВрдЯрд┐рдВрдЧ рдПрдХрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдПрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, /index.php рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред рдпрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдорд╛рдзрд╛рди рд▓рд╛рдЧреВ рдХрд░реЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ MODX (рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд) рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред


CMS MODX рдХреЗ рд╕рд╛рде рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╕рд╛рдЗрдЯ рдкрд░ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ


рд╕реАрдПрдордПрд╕ MODX рдкрд░ PhpDump рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд╕рдорд╛рдзрд╛рди рд╣реИрдВред


рдкрд╣рд▓рд╛ рд╕рдорд╛рдзрд╛рди - рдКрдкрд░ рджрд┐рдП рдЧрдП рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдХреЗ index.php рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЛрдб рд▓рд┐рдЦреЗрдВ:


  include_once '[directory phpdump]/vendor/autoload.php'; new PhpDump\InitDump(); 

рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, PhpDump рдбрд┐рдмрдЧ рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдФрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдкрдХрдбрд╝ рд▓реЗрдЧрд╛ред


рд▓реЗрдХрд┐рди рд╕рдм рдХреБрдЫ рдЬреЛ MODX рд▓реЙрдЧ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛, рд╕рд╛рде рд╣реА рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рджрдмрд╛рдП рдЧрдП рддреНрд░реБрдЯрд┐рдпреЛрдВ,
PhpDumpConsole рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛


рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк: рдЖрдзрд┐рдХрд╛рд░рд┐рдХ - рдЕрдиреБрдХреВрд▓рди рдХрд┐рдП рдмрд┐рдирд╛ред рдпрд╣ ErrorHandler рд╡рд░реНрдЧ рдФрд░ MODX рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдЪрд░ рдХреА рд╕реЗрдЯрд┐рдВрдЧ рдХрд╛ рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реИред


рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдПрдХ рдЦрд╛рдореА рд╣реИред рдпрджрд┐ рдбреЗрдЯрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╕рд╛рдЗрдЯ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддреА рд╣реИред рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реА рд╕реНрдерд┐рддрд┐ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рд╡рд░реНрдгрди рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред


рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдореЗрдВ, рдЖрдк рд╕рднреА рдЙрддреНрдкрдиреНрди PHP рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЖрдк рдЙрддреНрдкрдиреНрди рд▓реЙрдЧ рдирд╣реАрдВ рджреЗрдЦреЗрдВрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ MODX рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред


рддреАрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк, рдЬрд┐рд╕ рдкрд░ рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд╡рд╛рд╕ рдХрд░рддрд╛ рдерд╛, рд╡рд╣ рдлрд╝рд╛рдЗрд▓ 'dev_route.php' рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЙрд▓ рдХреА рдкреВрд░реА рд░рд╛рдЙрдЯрд┐рдВрдЧ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИ;
.Htaccess рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╕рднреА рдЧреИрд░-рд╕реНрдерд┐рд░ рдХреЙрд▓ dev_route.php рдлрд╝рд╛рдЗрд▓ рдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВред


рдзреНрдпрд╛рди: рдЕрдВрдд рддрдХ, рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИред рд╢рд╛рдпрдж рдХреБрдЫ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд╛рдЗрдЯ рдкрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдПрдХ рдЕрд▓рдЧ рддрд░реНрдХ рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдорд╛рд░реНрдЧ dev_route.php рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдирд╣реАрдВ рд╣реИред


рдзреНрдпрд╛рди рджреЗрдВ: .htaccess рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред рдЗрд╕рдореЗрдВ рд╕рднреА рд╕реНрдерд┐рд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ dev_route.php рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рд╣рдо рдкреБрд░рд╛рдиреЗ рдХреА .htaccess рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдмреИрдХрдЕрдк рдмрдирд╛рддреЗ рд╣реИрдВред
рд╕рд╛рдЗрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдореВрд▓ рдореЗрдВ рдПрдХ рдирдпрд╛ .htaccess рдмрдирд╛рдПрдБ рдФрд░ рдХреЛрдб рджрд░реНрдЬ рдХрд░реЗрдВ:


 # file .htaccess #---------------------------------------- #         . -        . RewriteCond %{REQUEST_URI} /manager/min/assets/.* RewriteCond %{REQUEST_FILENAME} !-f [OR] RewriteCond %{REQUEST_URI} /manager/assets/.* RewriteCond %{REQUEST_FILENAME} !-f [OR] RewriteCond %{REQUEST_URI} /assets/.* RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ - [R=404,L] #--------------------------------------- #--------------------------------------- #      RewriteCond %{REQUEST_URI} /manager/min/assets/.* RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_URI} /manager/assets/.* RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_URI} /assets/.* RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteRule ^(.*)$ $1 [L] #--------------------------------------- #--------------------------------------- #      c   . RewriteCond %{REQUEST_FILENAME} .*\.js$ [OR] RewriteCond %{REQUEST_FILENAME} .*\.html$ [OR] RewriteCond %{REQUEST_FILENAME} .*\.css$ [OR] RewriteCond %{REQUEST_FILENAME} .*\.gif$ [OR] RewriteCond %{REQUEST_FILENAME} .*\.jpg$ [OR] RewriteCond %{REQUEST_FILENAME} .*\.jpeg$ [OR] RewriteCond %{REQUEST_FILENAME} .*\.png$ [OR] RewriteCond %{REQUEST_FILENAME} .*\.svg$ [OR] RewriteCond %{REQUEST_FILENAME} .*\.woff$ RewriteRule ^(.*)$ $1 [L] #--------------------------------------- #--------------------------------------- #   . RewriteCond %{REQUEST_URI} /manager(?:|/.*) RewriteRule ^(.*)$ dev_route.php [L] RewriteCond %{REQUEST_URI} /connectors(?:|/.*) RewriteRule ^(.*)$ dev_route.php [L] #--------------------------------------- #--------------------------------------- #    . RewriteCond %{REQUEST_URI} .* RewriteRule ^(.*)$ dev_route.php?q=$1 [L,QSA] #--------------------------------------- 

рд╣рдо рд╕рд╛рдЗрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдореВрд▓ рдореЗрдВ dev_route.php рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ dev_route.php рдХреЛрдб dev_route.php :


 <?php include_once '[yor path php dump]/vendor/autoload.php';//        new \Alpa\PhpDump\InitDump(); $redirect_url=$_SERVER['REDIRECT_URL']; $manager_path='manager'; $manager_dir='manager'; $connectors_path='connectors'; $connectors_dir='connectors'; if(preg_match("~^/{$manager_path}(|/[\s\S]*)$~",$redirect_url,$match)){ if(trim($match[1])=='' || trim($match[1])=='/' || !is_file(__DIR__.'/'.$manager_dir.$match[1])){ $match[1]='/index.php'; } include_once __DIR__.'/'.$manager_dir.$match[1]; } else if(preg_match("~^/{$connectors_path}(|/[\s\S]*)$~",$redirect_url,$match)){ if(trim($match[1])=='' || trim($match[1])=='/' || !is_file(__DIR__.'/'.$connectors_dir.$match[1])){ $match[1]='/index.php'; } include_once __DIR__.'/'.$connectors_dir.$match[1]; } else if(empty($redirect_url) || $redirect_url=='/' || $redirect_url=='/index.php'){ include_once __DIR__.'/index.php'; } else { //header( 'Location: /index.php' ); exit; include_once __DIR__.'/index.php'; } //include_once __DIR__.$redirect_url; 

рдЗрд╕рдХреЗ рдмрд╛рдж, рдлрд╝рд╛рдЗрд▓ рдореЗрдВ core\xpdo\xpdo.class.php (MODX Revo 2.7 рдХреЗ рд▓рд┐рдП), рд▓реЙрдЧ рд╡рд┐рдзрд┐ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░реЗрдВ:


  public function log($level, $msg, $target= '', $def= '', $file= '', $line= '') { \deb::print($msg."=>[$target][$def][$file][$line]",'LOG'); $this->_log($level, $msg, $target, $def, $file, $line); } 

рдФрд░ рд╡рд╣ рд╕рдм рд╣реИред рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдореЗрдВ рдкрд░реАрдХреНрд╖рдгред рдпрджрд┐ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╕рдм рдХреБрдЫ рдЙрд╕реА рддрд░рд╣ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред


рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:


 //    .        \deb::print($var,'point1'); //      . \deb::dump($object,'point2'); //  var_dump \deb::vdump($object,'point3'); // var_export \deb::vexport($object,'point4'); //    \deb::infoClass($name_class, 'point5'); //        .    . \deb::error($errno = false, $errstr, $errfile = false, $errline = false, $errcontext = false); //       trigger_error(); 

рд╕реБрд░рдХреНрд╖рд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕


PhpDump рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕реБрд░рдХреНрд╖рд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдиреНрдпреВрдирддрдо рд╣реИред


рдпрджрд┐ рдЖрдк рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рд╕рд╛рдЗрдЯ рдкрд░ PhpDump рдХреЛ рд╕рдВрд▓рдЧреНрди рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ [рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ phpdump] /src/include_file_in_index.php рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдмрджрд▓реЗрдВ:


 $settings=[ 'hashkeys'=>[ 'HashKey'=>[ //      ().    'key'=>'HashKey', //    'greeting_server'=>'greeting_server', //          'greeting_client'=>'greeting_client' //      . ] ] ]; 

рдХрдВрд╕реЛрд▓ рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рдкрд░, 'рдЬрд╛рд╡рд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХреЙрдиреНрд╕реЗрдкреНрдЯ' рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪреА рдореЗрдВ, PhpDumpConsole рдЪреБрдиреЗрдВ рдФрд░ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдХреЛрдб рджрд░реНрдЬ рдХрд░реЗрдВ


 dm.setHashKey({ hashkey:'HashKey', greeting_server:'greeting_server', greeting_client:'greeting_client' }); //  hashkey , greeting_server, greeting_client       . dm.bindHashKeyDomain({hashkey:'HashKey',domain:'global'}); //  domain:'your_domain' // domain='global'               . 

рдЕрдиреНрдп рдмрдиреНрд╕


рдХрдВрд╕реЛрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдЖрдк рдЪрд╛рд▓реВ / рдмрдВрдж рдмреИрдХрдЯреНрд░реЗрд╕ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣ рд╕рдм рдЖрдк GitHub рдкреЗрдЬ рдкрд░ рджрд┐рдП рдЧрдП рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ
PhpDump рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХреЗрд╡рд▓ MODX рдХреЗ рд▓рд┐рдП, рдмрд▓реНрдХрд┐ рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдЙрдкрд╡рд╛рд╕ рдХрд░рдирд╛ рд╣реИред


рдкреБрдирд╢реНрдЪ: рдпрджрд┐ рдЖрдк MODX рдХреЗ рдкреНрд░рд╢рдВрд╕рдХ рд╣реИрдВ, рддреЛ рдЬрд▓реНрдж рд╣реА рдЖрдкрдХреЛ рдирдП рдмрдиреНрд╕ рдорд┐рд▓реЗрдВрдЧреЗ: рдбрд┐рд╡рд╛рдЗрдб рдмрдирд╛рдиреЗ рдФрд░ рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рдХреЛ рдЬреАрддрдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ред рд▓реЙрдЬрд┐рдХ рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рдФрд░ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╕реНрдирд┐рдкреЗрдЯ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рд╕реНрд╡-рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдФрд░ рд╕рдореВрд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ 2x-3x рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рдХреЛ рдорд┐рд▓рд╛ рдХрд░ рдЖрдк рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рд▓рдЪреАрд▓рд╛рдкрди рд╣реИред рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рд╕реНрдирд┐рдкреЗрдЯ рд▓рд┐рдЦрдиреЗ рдХреЗ рдкреВрд░реНрдг рдЪрдХреНрд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдПрдХ рдЕрд▓рдЧ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдЕрдиреНрдп рд╕реНрдирд┐рдкреЗрдЯ рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдХреА рдмрд╛рддрдЪреАрдд рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рдПрдкреАрдЖрдИ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред


рдЖрдк рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рджред

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


All Articles