рд╢рд╛рдпрдж, рд╣реИрдмрд░ рдХреЗ рд▓рдЧрднрдЧ рд╕рднреА рдирд┐рд╡рд╛рд╕рд┐рдпреЛрдВ рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рджреНрд╡рд┐рдмреАрдЬрдкрддреНрд░реА рдХреНрдпрд╛ рд╣реИ рдФрд░ рд░реЗрдЧрд┐рд╕реНрддрд╛рди рдореЗрдВ рдПрдХ рд╢реЗрд░ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рднреА рдПрдХ рджреНрд╡рд┐рднрд╛рдЬрди рдХреЗ рд╕рд╛рде рдкрдХрдбрд╝реА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рдордЭрджрд╛рд░ рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЕрднрд╛рд╡ рдореЗрдВред

PHP / Laravel рдореЗрдВ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдпрд╣ рддреНрд░реБрдЯрд┐ рджреЗрдЦреА:

рдпрд╣, рдХрдо рд╕реЗ рдХрдо, рдЕрдЬреАрдм рдерд╛, рдХреНрдпреЛрдВрдХрд┐, RFC 2616 рдореЗрдВ рд╡рд░реНрдгрди рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдкрд░, 502 рддреНрд░реБрдЯрд┐ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ "рд╕рд░реНрд╡рд░, рдЬреЛ рдПрдХ рдЧреЗрдЯрд╡реЗ рдпрд╛ рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рдХреЛ рдЕрдкрд╕реНрдЯреНрд░реАрдо рд╕рд░реНрд╡рд░ рд╕реЗ рдЧрд▓рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдорд┐рд▓реАред" рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреЛрдИ рдЧреЗрдЯрд╡реЗ рдирд╣реАрдВ рдереЗ, рд╡реЗрдм рд╕рд░реНрд╡рд░ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдмреАрдЪ рдХреЛрдИ рдкреНрд░реЙрдХреНрд╕реА рдирд╣реАрдВ рдерд╛, рд╡реЗрдм рд╕рд░реНрд╡рд░ рд╡рд░реНрдЪреБрдЕрд▓рдмреЙрдХреНрд╕ рдХреЗ рддрд╣рдд рдЪрд▓ рд░рд╣рд╛ рдерд╛, рдФрд░ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдордзреНрдпрд╕реНрде рдХреЗ рд╕реАрдзреЗ рд╡реЗрдм рд╕рд╛рдордЧреНрд░реА рд╡рд┐рддрд░рд┐рдд рдХрд░ рд░рд╣рд╛ рдерд╛ред рдирдЧреНрдиреЗрдХреНрд╕ рд▓реЙрдЧ рдореЗрдВ рдпрд╣ рдерд╛:
2018/06/20 13:42:41 [error] 2791#2791: *2206 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 192.168.10.1, server: colg.test, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php7.1-fpm.sock:", host: "colg.test"
502 рддреНрд░реБрдЯрд┐ (рдЖрд░рдПрдлрд╕реА рдХреЗ рдореВрд▓ рдЕрдВрдЧреНрд░реЗрдЬреА рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ "рдЕрдкрд╕реНрдЯреНрд░реАрдо рд╕рд░реНрд╡рд░") рдХреЗ рд╡рд░реНрдгрди рдореЗрдВ "рдЕрдкрд╕реНрдЯреНрд░реАрдо рд╕рд░реНрд╡рд░" рд╢рдмреНрдж рдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ рдирдЧреНрдиреЗрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдкрде рдкрд░ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдиреЗрдЯрд╡рд░реНрдХ рд╕рд░реНрд╡рд░ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди, рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдВрджреЗрд╢ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред PHP-FPM рдореЙрдбреНрдпреВрд▓, рд╕рд░реНрд╡рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ, рдпрд╣ рдмрд╣реБрдд рдЕрдкрд╕реНрдЯреНрд░реАрдо рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред PHP рдХреЗ рд▓реЙрдЧ рдореЗрдВ, рдпрд╣ рдерд╛:
[20-Jun-2018 13:42:41] WARNING: [pool www] child 26098 exited on signal 11 (SIGSEGV - core dumped) after 102247.908379 seconds from start
рдЕрдм рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХрд╣рд╛рдБ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдерд╛ред PHP рдХреЗрд╡рд▓ рдХреЛрд░ рдбрдВрдк рдореЗрдВ рдЧрд┐рд░рд╛, PHP рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдореЗрдВ рдХрд┐рд╕ рдмрд┐рдВрджреБ рдкрд░ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реБрдИ, рдпрд╣ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рддреЛ рд░реЗрдЧрд┐рд╕реНрддрд╛рди рдореЗрдВ рдПрдХ рд╢реЗрд░ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИ - рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдбрд╛рдЗрдХреЛрдЯреЙрдореА рджреНрд╡рд╛рд░рд╛ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреА рдореЗрд░реА рдкрд╕рдВрджреАрджрд╛ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЖрдкрддреНрддрд┐рдпреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣рд╛рдВ рдПрдХ рдбреАрдмрдЧрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╣реА рдПрдХреНрд╕рдбреЗрдмрдЧ, рд▓реЗрдХрд┐рди рдбрд╛рдпрдХреЛрдЯреЙрдореА рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рдерд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, XDebug рдХреА рдмрд╛рд░реА рдЖрдПрдЧреАред
рдЗрд╕рд▓рд┐рдП, рд╡реЗрдм рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдореЗрдВ, рдореИрдВрдиреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдЖрдЧреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде рд╕рдмрд╕реЗ рд╕рд░рд▓ рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрдЖрдЙрдЯрдкреБрдЯ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЗрд╕рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ:
echo тАЬI am hereтАЭ; die();
рдЕрдм рдмреБрд░рд╛ рдкреГрд╖реНрда рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

рдКрдкрд░ рд▓рд┐рдЦреА рдХрдорд╛рдВрдб рд░рдЦрдиреЗ рдХреЗ рдмрд╛рдж, рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдФрд░ рдлрд┐рд░ рд╡реЗрдм рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдкрд╛рде рдХреЗ рдЕрдВрдд рдореЗрдВ, рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдПрдХ рддреНрд░реБрдЯрд┐ (рдЬреЛ рдЙрд╕ рдкрд░ рд╕рдВрджреЗрд╣ рдХрд░реЗрдЧреА!) рдЗрди рджреЛ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдмреАрдЪ рдХрд╣реАрдВ рд╣реЛрддреА рд╣реИред рд╡реЗрдм рдЕрдиреБрд░реЛрдз рдкрде рдХреЗ рдордзреНрдп рдореЗрдВ рдирд┐рджрд╛рди рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рддреНрд░реБрдЯрд┐ рдЕрдВрдд рдореЗрдВ рдХрд╣реАрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рддреНрд░реБрдЯрд┐ рд▓рд╛рд░рд╡реЗрд▓ рдПрдорд╡реАрд╕реА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рд╣реА рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕рдХреЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдкрд░, рдЬрдм рдЗрд╕ рджреГрд╢реНрдп рдореЗрдВ, рдЬреЛ рдХрд┐ рдпрд╣рд╛рдВ рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╣реИ, рдЗрд╕ рдкреНрд░рддрд┐рдкрд╛рджрди рдореЗрдВ:
@extends('layouts.app') @section('content') <div> <div class="panel-heading">Myservice</div> <div class="panel-body"></div> </div> @endsection
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╡реНрдпреВ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ PHP рдХреЛрдб рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ (Laravel рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдЖрдкрдХреЛ рджреЗрдЦрдиреЗ рдореЗрдВ PHP рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ), рдФрд░ рд╕рдорд╕реНрдпрд╛рдПрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдпрд╣рд╛рдВ рдирд╣реАрдВ рд╣реИрдВред рд▓реЗрдХрд┐рди рдКрдкрд░ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рджреГрд╢реНрдп рд▓реЗрдЖрдЙрдЯ.рдЕрдк рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡рд╣рд╛рдВ рджреЗрдЦреЗрдВред рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ: рд╕реЗрд╡рд╛ рдХреЗ рд╕рднреА рдкреГрд╖реНрдареЛрдВ рдХреЗ рд▓рд┐рдП рдиреЗрд╡рд┐рдЧреЗрд╢рди рддрддреНрд╡, рд▓реЙрдЧрд┐рди рдлрд╝реЙрд░реНрдо рдФрд░ рдЕрдиреНрдп рдЪреАрдЬреЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд╣реИрдВред рд╡рд╣рд╛рдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╣рд░ рдЪреАрдЬ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВ рдХреЗрд╡рд▓ рдПрдХ рдкрдВрдХреНрддрд┐ рджреВрдВрдЧрд╛, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдПрдХ рд╡рд┐рдлрд▓рддрд╛ рдЙрддреНрдкрдиреНрди рд╣реБрдИ, рдпрд╣ рд╕рднреА рдПрдХ рд╣реА рдбрд╛рдЗрдХреЛрдореЛрдореА рдкрд╛рдпрд╛ рдЧрдпрд╛ред рдпрд╣рд╛рдБ рд▓рд╛рдЗрди рд╣реИ:
<script> window.bkConst = {!! (new App\Src\Helpers\UtilsHelper())->loadBackendConstantsAsJSData() !!}; </script>
рдпрд╣рд╛рдБ, рдмрд╕ рд╡реНрдпреВ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рдХреЛрдб рдореЗрдВ, PHP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдореЗрд░рд╛ "рдЖрдХрд░реНрд╖рдг" рдерд╛ - рдмреИрдХреЗрдВрдб рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреА рд╡реНрдпреБрддреНрдкрддреНрддрд┐, рдЬреЗрдПрд╕-рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ, рдбреАрдЖрд░рд╡рд╛рдИ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдирд╛рдо рдкрд░, рджреГрд╢реНрдпрдкрдЯрд▓ рдкрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдПред LoadBackendConstantsAsJSData рд╡рд┐рдзрд┐ рдХрдИ рд╡рд░реНрдЧреЛрдВ рдХреЛ рд╕рд╛рдордиреЗ рд╡рд╛рд▓реЗ рдкрд░ рдЖрд╡рд╢реНрдпрдХ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рд╕рд╛рде рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддреА рд╣реИред AddClassConstants рдореЗрдердб рдореЗрдВ рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЧрдИ рддреНрд░реБрдЯрд┐ рд╣реБрдИ, рдЬрд╣рд╛рдБ PHP рдЖрддреНрдордирд┐рд░реАрдХреНрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдХреНрд╖рд╛ рдХреЗ рд╕рд╣рдХрд░реНрдорд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
private function addClassConstants(string $classFullName, array &$constantsArray) { $r = new ReflectionClass($classFullName); $result = []; $className = $r->getShortName(); $classConstants = $r->getConstants(); foreach($classConstants as $name => $value) { if (is_array($value) || is_object($value)) { continue; } $result["$className::$name"] = $value; } $constantsArray = array_merge($constantsArray, $result); }
рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рд╕рд╛рде рд╡рд░реНрдЧреЛрдВ рдХреЗ рдмреАрдЪ рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░ рджрд┐рдпрд╛, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдХрд╛рд░рдг - рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рд╕рд╛рде рдЗрд╕ рд╡рд░реНрдЧ - рдмрд╛рдХреА рдПрдкреАрдЖрдИ рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд░рд╛рд╕реНрддрд╛ рд╣реИред
class APIPath { const API_BASE_PATH = '/api/v1'; const DATA_API = self::API_BASE_PATH . "/data"; ... const DATA_ADDITIONAL_API = DATA_API . "/additional"; }
рдЗрд╕рдореЗрдВ рдХрд╛рдлреА рдХреБрдЫ рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВ, рдФрд░ рд╕рд╣реА рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдбрд╛рдЗрдХреЛрдЯреЙрдореА рдлрд┐рд░ рд╕реЗ рдЙрдкрдпреЛрдЧреА рдереАред рдЕрдм, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рд╕рднреА рдиреЗ рджреЗрдЦрд╛ рдХрд┐ рд╕реНрд╡ :: рдирд┐рд░рдВрддрд░ рдирд╛рдо DATA_API рдХреЗ рд╕рд╛рдордиреЗ рд╕реНрдерд┐рд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рдЧрд╛рдпрдм рд╣реИред рдЗрд╕реЗ рдЙрд╕рдХреЗ рд╕рд╣реА рд╕реНрдерд╛рди рдкрд░ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░ рдЧрдпрд╛ред
рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдЖрддреНрдордирд┐рд░реАрдХреНрд╖рдг рддрдВрддреНрд░ рдореЗрдВ рд╣реИ, рдореИрдВрдиреЗ рдмрдЧ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдиреНрдпреВрдирддрдо рдЙрджрд╛рд╣рд░рдг рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛:
class SomeConstants { const SOME_CONSTANT = SOME_NONSENSE; } $r = new \ReflectionClass(SomeConstants::class); $r->getConstants();
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рджреМрд░рд╛рди, PHP рдХреНрд░реИрд╢ рдирд╣реАрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдереА, рдмрд▓реНрдХрд┐ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЪреЗрддрд╛рд╡рдиреА рдЬрд╛рд░реА рдХреА рдереАред
PHP Warning: Use of undefined constant SOME_NONSENSE - assumed 'SOME_NONSENSE' (this will throw an Error in a future version of PHP) in /home/vagrant/code/colg/_tmp/1.php on line 17
рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрд╢реНрд╡рд╕реНрдд рдерд╛ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рди рдХреЗрд╡рд▓ рд╕рд╛рдЗрдЯ рдХреЛ рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп рдкреНрд░рдХрдЯ рд╣реЛрддреА рд╣реИ, рдмрд▓реНрдХрд┐ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдКрдкрд░ рд▓рд┐рдЦреЗ рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп рднреА рд╣реЛрддреА рд╣реИред рд░рдирдЯрд╛рдЗрдо рдФрд░ рдиреНрдпреВрдирддрдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмреАрдЪ рдПрдХрдорд╛рддреНрд░ рдЕрдВрддрд░ рд▓рд╛рд░рд╡реЗрд▓ рд╕рдВрджрд░реНрдн рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдерд╛: рд╕рдорд╕реНрдпрд╛ рдХреЛрдб рдЗрд╕рдХреА рдХрд╛рд░реАрдЧрд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рд▓рд┐рдП рд▓рд╛рд░рд╡реЗрд▓ рдХреЗ рддрд╣рдд рдХрд┐рд╕реА рддрд░рд╣ рдХрд╛ рдЕрдВрддрд░ рдерд╛ред рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рд╣реИ, рдбрд┐рдмрдЧрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред Xdebug рдХреЗ рддрд╣рдд рдХреЛрдб рдХреЛ рдЪрд▓рд╛рдиреЗ рдкрд░, рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рд░рд┐рдлреНрд▓реЗрдХреНрд╢рдирдХреНрд▓рд╛рд╕ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рджреБрд░реНрдШрдЯрдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реЛрддреА рд╣реИ :: getConstants рд╡рд┐рдзрд┐, Illuminate \ Foundation \ Bootstrap \ HandleException :: handleError рд╡рд┐рдзрд┐ рдореЗрдВ, рдЬреЛ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рд╣реИ:
public function handleError($level, $message, $file = '', $line = 0, $context = []) { if (error_reporting() & $level) { throw new ErrorException($message, 0, $level, $file, $line); } }
рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдзрд╛рдЧрд╛ рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЛ рдлреЗрдВрдХрдиреЗ рдХреЗ рдмрд╛рдж рд╡рд╣рд╛рдВ рдорд┐рд▓рд╛, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдирд┐рд░рдВрддрд░рддрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рддреНрд░реБрдЯрд┐ рдХреЗ рдХрд╛рд░рдг рдпрд╣ рд╢реБрд░реВ рд╣реБрдЖ рдерд╛, рдФрд░ рдПрдХ рддреНрд░реБрдЯрд┐ рдЕрдкрд╡рд╛рдж рдХреЛ рдлреЗрдВрдХрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп PHP рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЧрдпрд╛ред рдЕрдкрд╡рд╛рдж рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рдПрдХ рдЕрдкрд╡рд╛рдж ... рдореИрдВрдиреЗ рддреБрд░рдВрдд рдкреНрд░рд╕рд┐рджреНрдз
рдбрдмрд▓ рдлреЙрд▓реНрдЯ рдХреЛ рдпрд╛рдж рдХрд┐рдпрд╛ред рддреЛ, рд╡рд┐рдлрд▓рддрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд▓рд╛рд░рд╡реЗрд▓ рдХреЗ рд╕рдорд╛рди рдЕрдкрд╡рд╛рдж рд╣реИрдВрдбрд▓рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХреЛрдб рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╕рд┐рд░реНрдл рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рд╡рд┐рдзрд┐ рдереА рдЬрд┐рд╕рдиреЗ рдРрд╕рд╛ рдХрд┐рдпрд╛:
рдЕрдм, рдЕрдВрддрд┐рдо рдиреНрдпреВрдирддрдо рдЙрджрд╛рд╣рд░рдг рдЗрд╕ рддрд░рд╣ рджреЗрдЦрд╛ рдЧрдпрд╛:
<?php class SomeConstants { const SOME_CONSTANT = SOME_NONSENSE; } function handleError() { throw new ErrorException(); } set_error_handler('handleError'); set_exception_handler('handleError'); $r = new \ReflectionClass(SomeConstants::class); $r->getConstants();
рдФрд░ рдЗрд╕рдХреЗ рд▓реЙрдиреНрдЪ рдиреЗ PHP рд╕рдВрд╕реНрдХрд░рдг 7.2.4 рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рдХреЛ рдХреЛрд░ рдбрдВрдк рдореЗрдВ рддреЗрдЬреА рд╕реЗ рдкреИрдХ рдХрд┐рдпрд╛ред
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдПрдХ рдЕрдирдВрдд рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╣реИ - рдЬрдм рдореВрд▓ рддреНрд░реБрдЯрд┐ рд╕реЗ рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЛ рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВ, рддреЛ рдирд┐рдореНрди рдЕрдкрд╡рд╛рдж рдХреЛ handleException рдореЗрдВ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рд╕реЗ handleException рдореЗрдВ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реА рддрд░рд╣ рдЕрдирдиреНрддрддрд╛ рдХреЗ рд▓рд┐рдПред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд┐рдлрд▓рддрд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рддреНрд░реБрдЯрд┐_рд╣реИрдВрдбрд▓рд░ рдФрд░ рдЕрдкрд╡рд╛рдж_рд╣реИрдВрдбрд▓рд░ рджреЛрдиреЛрдВ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрджрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рд╕реЗрдЯ рд╣реИ, рддреЛ рд╕рдорд╕реНрдпрд╛ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдпрд╣ рднреА рдХреЗрд╡рд▓ рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЛ рдлреЗрдВрдХрдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛, рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЛ рдлреЗрдВрдХрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдлреА рд╕рд╛рдорд╛рдиреНрдп рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдкрд░рд┐рдкрддреНрд░ рдирд┐рд░реНрднрд░рддрд╛ рдЬреИрд╕реА рдХреБрдЫ рд╣реИред
рдЙрд╕рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ PHP рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ (рдзрдиреНрдпрд╡рд╛рдж, рдбреЙрдХрд░!) рдХреЗ рддрд╣рдд рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХреАред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╡рд┐рдлрд▓рддрд╛ рдХреЗрд╡рд▓ рд╕реНрд╡рдпрдВ рдкреНрд░рдХрдЯ рд╣реЛрддреА рд╣реИ, PHP 7.1 рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ, PHP рдХреЗ рдкреВрд░реНрд╡ рд╕рдВрд╕реНрдХрд░рдг рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ - рд╡реЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рддреНрд░реБрдЯрд┐ рдХреЗ рдЕрдкрд╡рд╛рдж рдЕрдкрд╡рд╛рдж рдХреА рд╢рдкрде рд▓реЗрддреЗ рд╣реИрдВред
рдЗрд╕ рд╕рдм рд╕реЗ рдХреНрдпрд╛ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?
- рдбрд╛рдЗрдХреЛрдЯреЛрдЯреЙрдореА рджреНрд╡рд╛рд░рд╛ рдбрд┐рдмрдЧрд┐рдВрдЧ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреА рдПрдХ рдПрдВрдЯреАрдбрд┐рд▓реБрд╡рд┐рдпрди рд╡рд┐рдзрд┐ рд╣реИ, рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрдЬрд╛рдирдХрд╛рд░реА рдХреА рдХрдореА рдХреА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ
- рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, 502 рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдЕрдХрд▓реНрдкрдиреАрдп рд╣реИрдВ, рджреЛрдиреЛрдВ рд╕рдВрджреЗрд╢ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ ("рдмреИрдб рдЧреЗрдЯрд╡реЗ") рдФрд░ рдЖрд░рдПрдлрд╕реА рдореЗрдВ рдЗрд╕рдХреЗ рдбрд┐рдХреЛрдбрд┐рдВрдЧ "рдЕрдкрд╕реНрдЯреНрд░реАрдо рд╕рд░реНрд╡рд░ рд╕реЗ рдЧрд▓рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдпрджреНрдпрдкрд┐, рдпрджрд┐ рдЖрдк рд╡реЗрдм рд╕рд░реНрд╡рд░ рд╕реЗ рдЬреБрдбрд╝реЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕рд░реНрд╡рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдорд╛рдирддреЗ рд╣реИрдВ, рддреЛ рдЖрдк RFC рдореЗрдВ рддреНрд░реБрдЯрд┐ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдХреЗ рдЕрд░реНрде рдХреЛ рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╕рдорд╛рди PHP-FPM рдХреЛ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рди рдХрд┐ рд╕рд░реНрд╡рд░ред
- рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдбреНрд░рд╛рдЗрд╡, рдпрд╣ рддреБрд░рдВрдд рдирд┐рд░рдВрддрд░ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рддрдм рдмрдЧ рдХреЛ рдкрдХрдбрд╝рд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛ред
рдореБрдЭреЗ рдЗрд╕ рдкрд░ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
Bagreport -
рднреЗрдЬрд╛ рдЧрдпрд╛ ред
UPD: рдмрдЧ
рдареАрдХ рд╣реЛ рдЧрдпрд╛ рд╣реИ ред рдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдпрд╣ рдлрд┐рд░ рднреА рдкреНрд░рддрд┐рдмрд┐рдВрдм рддрдВрддреНрд░ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ - рд░рд┐рдлреНрд▓реЗрдХреНрд╢рдирдХреНрд▓рд╛рд╕ рдХреА рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдореЗрдВ :: getCststore рд╡рд┐рдзрд┐