PHP 7.4 рдХреЛ рдЕрднреА рд╕реНрдерд┐рд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╕реЗ рдФрд░ рднреА рдЕрдзрд┐рдХ рд╕реБрдзрд╛рд░ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рд╣реИрдВред рдФрд░ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдмрд╛рдд, PHP рдЬреЛ рдЗрдВрддрдЬрд╝рд╛рд░ рдХрд░ рд░рд╣реА рд╣реИ рд╡рд╣ рджрд┐рдорд┐рддреНрд░реА рд╕реНрдЯреЛрдЧреЛрд╡ рдХреЛ рдмрддрд╛ рд╕рдХрддреА рд╣реИ - рдУрдкрди рд╕реЛрд░реНрд╕ PHP рдХреЗ рдЕрдЧреНрд░рдгреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рдФрд░, рд╢рд╛рдпрдж, рд╕рдмрд╕реЗ рдкреБрд░рд╛рдирд╛ рд╕рдХреНрд░рд┐рдп рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛ред
рд╕рднреА рджрд┐рдорд┐рддреНрд░реА рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХреЗрд╡рд▓ рдЙрди рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдФрд░ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИрдВ рдЬреЛ рд╡рд╣ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдУрдиреНрдЯрд┐рдХреЛ рдХреА рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдкрд░рдВрдкрд░рд╛рдУрдВ рдореЗрдВ, рдХрдЯреМрддреА рдХреЗ рддрд╣рдд, рджрд┐рдорд┐рддреНрд░реА рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк PHP 8 рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдХрд╣рд╛рдиреА рдХрд╛ рдПрдХ рдкрд╛рда рд╕рдВрд╕реНрдХрд░рдг, рдЬреЛ рдирдП рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓реЛрдВ рдХреЛ рдЦреЛрд▓ рд╕рдХрддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЬреЗрдЖрдИрдЯреА рдФрд░ рдПрдлрдПрдлрдЖрдИ - "рдЕрджреНрднреБрдд рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ" рдХреА рдХреБрдВрдЬреА рдореЗрдВ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рдФрд░ рдиреБрдХрд╕рд╛рди рдХреЗ рд╕рд╛рдеред
рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП: рджрд┐рдорд┐рддреНрд░реА рд╕реНрдЯреЛрдЧреЛрд╡ 1984 рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛ рдЧрдП, рдЬрдм рд╕рднреА рдкрд╛рдардХреЛрдВ рдХрд╛ рдЬрдиреНрдо рдирд╣реАрдВ рд╣реБрдЖ рдерд╛, рдФрд░ рд╡рд┐рдХрд╛рд╕ рдЙрдкрдХрд░рдг рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдпреЛрдЧрджрд╛рди рджреЗрдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ, рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреАрдПрдЪрдкреА (рд╣рд╛рд▓рд╛рдВрдХрд┐ рджрд┐рдорд┐рддреНрд░реА рд░реВрд╕реА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдирд╣реАрдВ PHP рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЛрдВрдиреЗ
рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рд╣рд╛рдИрд▓рд╛рдб ++ рдкреБрд░рд╕реНрдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдореЗрд░рд╛ рдзрдиреНрдпрд╡рд╛рдж)ред рджрд┐рдорд┐рддреНрд░реА PHP (eAccelerator) рдХреЗ рд▓рд┐рдП Turck MMCache рдХреЗ рд▓реЗрдЦрдХ, Zend OPcache рдЕрдиреБрд░рдХреНрд╖рдХ, PHPNG рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдиреЗрддрд╛ рд╣реИрдВ, рдЬрд┐рд╕рдиреЗ PHP 7 рдХрд╛ рдЖрдзрд╛рд░ рдмрдирд╛рдпрд╛ рдФрд░ PHP рдХреЗ рд▓рд┐рдП JIT рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЕрдЧреНрд░рдгреА рд╣реИред
PHP рдкреНрд░рджрд░реНрд╢рди рд╡рд┐рдХрд╛рд╕
рдореИрдВрдиреЗ 15 рд╕рд╛рд▓ рдкрд╣рд▓реЗ PHP рдкрд░рдлреЙрд░реНрдореЗрдВрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдерд╛ рдЬрдм рдореИрдВрдиреЗ Zend рдЬреНрд╡рд╛рдЗрди рдХрд┐рдпрд╛ рдерд╛ред рдлрд┐рд░ рд╣рдордиреЗ рд╕рдВрд╕реНрдХрд░рдг 5.0 рдЬрд╛рд░реА рдХрд┐рдпрд╛ - рдкрд╣рд▓рд╛ рдЬрд┐рд╕рдореЗрдВ рднрд╛рд╖рд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рд╣реЛ рдЧрдИред рддрдм рд╕реЗ, рд╣рдо рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдкрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЛ 40 рдЧреБрдирд╛ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдкрд░ 6 рдЧреБрдирд╛ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕ рд╕рдордп рдХреЗ рджреМрд░рд╛рди, рджреЛ рд╕рдлрд▓рддрд╛ рдХреЗ рдХреНрд╖рдг рдереЗ:
- рд╕рдВрд╕реНрдХрд░рдг 5.1, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЧрддрд┐ рдХреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдмрдврд╝рд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗред рд╣рдордиреЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рджреБрднрд╛рд╖рд┐рдпрд╛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред
- рд╕рдВрд╕реНрдХрд░рдг 7.0, рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдкреНрд░рдореБрдЦ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдореЗрдореЛрд░реА рдФрд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреИрд╢ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдерд╛ ( рдпрд╣рд╛рдВ рдЗрди рдЕрдиреБрдХреВрд▓рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝реЗрдВ)ред рдЗрд╕рдХреЗ рдХрд╛рд░рдг рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рджреЛрдиреЛрдВ рдореЗрдВ рджреЛ рдЧреБрдирд╛ рд╕реЗ рдЕрдзрд┐рдХ рддреНрд╡рд░рдг рд╣реБрдЖред
рдЕрдиреНрдп рд╕рднреА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдиреЗ рдзреАрд░реЗ-рдзреАрд░реЗ рдХрдИ рдХрдо рдкреНрд░рднрд╛рд╡реА рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдХреЗ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреАред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 7.1 рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдмрд╛рдпрдЯреЗрдХреЛрдб (рдЗрди рд╕рдорд╛рдзрд╛рдиреЛрдВ рдкрд░
рдПрдХ рд▓реЗрдЦ ) рдХреЗ рдЕрдиреБрдХреВрд▓рди рдкрд░ рдмрд╣реБрдд рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЖрд░реЗрдЦ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рджреЛрдиреЛрдВ 5 рд╡реЗрдВ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЕрдВрдд рдореЗрдВ рдФрд░ 7 рд╡реЗрдВ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╡рд┐рдХрд╛рд╕ рдЪрдХреНрд░ рдХреЗ рдЕрдВрдд рдореЗрдВ, рд╣рдо рдПрдХ рдкрдард╛рд░ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдзреАрдорд╛ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП v7.4 рдкрд░ рдХрд╛рдо рдХреЗ рдЕрдВрддрд┐рдо рд╡рд░реНрд╖ рдореЗрдВ, рдЙрддреНрдкрд╛рджрдХрддрд╛ рдореЗрдВ рдХреЗрд╡рд▓ 2% рдХреА рд╡реГрджреНрдзрд┐ рд╣реБрдИ рд╣реИред рдФрд░ рдпрд╣ рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рдЧреБрдгреЛрдВ рдФрд░ рд╕рд╣рд╕рдВрдпреЛрдЬрдХ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рдирдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рджрд┐рдЦрд╛рдИ рджреА рд╣реИрдВ рдЬреЛ PHP рдХреЛ рдзреАрдорд╛ рдХрд░ рджреЗрддреА рд╣реИрдВ (рдирд┐рдХрд┐рддрд╛ рдкреЛрдкреЛрд╡
рдиреЗ рдЗрди рдирдП рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ PHP рд░реВрд╕ рдореЗрдВ рдмрд╛рдд рдХреА рд╣реИ)ред
рдФрд░ рдЕрдм рд╣рд░ рдХреЛрдИ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реИ рдХрд┐ 8 рд╡реЗрдВ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдХреНрдпрд╛ рдЙрдореНрдореАрдж рдХреА рдЬрд╛рдП, рдХреНрдпрд╛ рдпрд╣ v7 рдХреА рд╕рдлрд▓рддрд╛ рдХреЛ рджреЛрд╣рд░рд╛ рд╕рдХрддрд╛ рд╣реИ?
JIT рдХреЛ рдпрд╛ JIT рдХреЛ рдирд╣реАрдВ
рджреБрднрд╛рд╖рд┐рдпрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░ рдЕрднреА рддрдХ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдореЗрдВ рд╕реЗ рд╕рднреА рдХреЛ рдПрдХ рдмрд╣реБрдд рд╣реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдзреНрдпрдпрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ рдХреЛ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рдкреНрд░рдорд╛рдг рдХреЗ рд╕реНрддрд░ рдкрд░ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдЬреЛ рд▓рд╛рдн рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рд╡рд╣ рдЬрдЯрд┐рд▓рддрд╛ рдпрд╛ рд▓рдЧрд╛рдП рдЧрдП рддрдХрдиреАрдХреА рд╕реАрдорд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рд╣реИред
рд▓реЗрдХрд┐рди рдПрдХ рдирдИ рд╕рдлрд▓рддрд╛ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХреЗ рд▓рд┐рдП рдЖрд╢рд╛ рдмрдиреА рд╣реБрдИ рд╣реИ - рдмреЗрд╢рдХ, рдореБрдЭреЗ JIT рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬрди рдХреА рд╕рдлрд▓рддрд╛ рдХреА рдХрд╣рд╛рдиреА рдпрд╛рдж рд╣реИред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, PHP рдХреЗ рд▓рд┐рдП JIT рдкрд░ рдХрд╛рдо 2012 рд╕реЗ рдЪрд▓ рд░рд╣рд╛ рд╣реИред 3 рдпрд╛ 4 рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдереЗ, рд╣рдордиреЗ рдЗрдВрдЯреЗрд▓ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИрдХрд░реНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рддрд░рд╣ рдЬреЗрдЖрдИрдЯреА рдХреЛ рдореБрдЦреНрдп рд╢рд╛рдЦрд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛ред рдЕрдВрдд рдореЗрдВ, PHP 8 рдореЗрдВ, рд╣рдордиреЗ JIT рдХреЛ рд╕рдВрдХрд▓рдХ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдФрд░ рджреЛрд╣рд░реЗ рддреНрд╡рд░рдг рдХреЛ рджреЗрдЦрд╛, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдкрд░, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдкрд░, рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдордВрджреАред

рдмреЗрд╢рдХ, рдпрд╣ рд╡рд╣ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдорд╛рдорд▓рд╛ рдХреНрдпрд╛ рд╣реИ? рд╢рд╛рдпрдж рд╣рдо рдХреБрдЫ рдЧрд▓рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╢рд╛рдпрдж рд╡рд░реНрдбрдкреНрд░реЗрд╕ рдЗрддрдирд╛ рдмреБрд░рд╛ рд╣реИ, рдФрд░ рдХреЛрдИ рднреА рдЬреЗрдЖрдИрдЯреА рдЙрд╕рдХреА рдорджрдж рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ (рд╣рд╛рдБ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рд╣реИ)ред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдмрдирд╛ рджрд┐рдпрд╛ рд╣реЛ, рд▓реЗрдХрд┐рди рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдпрд╣ рдФрд░ рднреА рдмреБрд░рд╛ рд╣реИред рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ, рдпрд╣ рд╕рдЪ рд╣реИ:
PHP рджреБрднрд╛рд╖рд┐рдпрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ ред

рдореИрдВрдбреЗрд▓рдмреНрд░реЛрдЯ рдЯреЗрд╕реНрдЯ рдореЗрдВ, рдЙрдиреНрд╣реЛрдВрдиреЗ LuaJIT рдЬреИрд╕реЗ рд░рддреНрди рд╕реЗ рднреА рдЖрдЧреЗ рдирд┐рдХрд▓ рдЧрдП, рдЬреЛ рдПрдХ рдЕрд╕реЗрдВрдмрд▓реА рднрд╛рд╖рд╛ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ, рд╣рдо рдЬреАрд╕реАрд╕реА-5.3 рд╕рдВрдХрд▓рдХ рдХреЗ рдЕрдиреБрдХреВрд▓рди рд╕реЗ рдХреЗрд╡рд▓ 4 рдЧреБрдирд╛ рдкреАрдЫреЗ рд╣реИрдВред рдЬреЗрдЖрдИрдЯреА рдХреЗ рд╕рд╛рде, рд╣рдо рдореИрдВрдбрд▓рдмреНрд░реЙрдЯ рдЯреЗрд╕реНрдЯ рдореЗрдВ рдмреЗрд╣рддрд░ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН, рд╣рдо рд╕реА рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВред
рдлрд┐рд░ рд╣рдо рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рддреЗрдЬреА рдХреНрдпреЛрдВ рдирд╣реАрдВ рд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ? рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдо JIT рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВред рдЖрдЗрдП рдмреБрдирд┐рдпрд╛рджреА рдмрд╛рддреЛрдВ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВред
PHP рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ
рд╕рд░реНрд╡рд░ рдЕрдиреБрд░реЛрдз рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рдмрд╛рдЗрдЯрдХреЛрдб рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЖрднрд╛рд╕реА рдорд╢реАрди рдХреЛ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмрд╛рдИрдЯрдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдХреЗ, рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдЕрдиреНрдп PHP рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рднреА рдХреЙрд▓ рдХрд░ рд╕рдХрддреА рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рдмрд╛рдпрдЯреЗрдХреЛрдб рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреНрд╡реЗрд░реА рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдкрд░, рдмрд╛рдЗрдЯ рдХреЛрдб рд╕рд╣рд┐рдд, рдЙрд╕рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рдореЗрдореЛрд░реА рд╕реЗ рд╣рдЯрд╛ рджреА рдЬрд╛рддреА рд╣реИрдВред рдпрд╣реА рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ PHP рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдкрд░ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдмреЗрд╢рдХ, рдЗрд╕ рддрд░рд╣ рдХреА рдпреЛрдЬрдирд╛ рдореЗрдВ рдЬреЗрдЖрдИрдЯреА рд╕рдВрдХрд▓рди рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрдВрдкрд╛рдЗрд▓рд░ рдмрд╣реБрдд рддреЗрдЬ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рдЕрдкрдиреЗ рдирдВрдЧреЗ рд░реВрдк рдореЗрдВ PHP рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд╣рд░ рдХреЛрдИ рдЗрд╕реЗ рдУрдкрдЪреЗ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
PHP + OPcache
рдУрдкрдЪреЗ рдХрд╛ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рд╣рд░ рдЕрдиреБрд░реЛрдз рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдиреЗ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдирд╛ рд╣реИред рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рдПрдХ рдмрд┐рдВрджреБ рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╣реИ, рд╕рднреА рд╕рдВрдХрд▓рди рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реА рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдмрд╛рдпрдЯреЗрдХреЛрдб рдХреЛ рдХреИрд╢ рдХрд░рддрд╛ рд╣реИред
рдЙрд╕реА рд╕рдордп, рди рдХреЗрд╡рд▓ рд╕рдВрдХрд▓рди рд╕рдордп рдмрдЪрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдореЗрдореЛрд░реА рднреА рд╣реЛрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдПрдбреНрд░реЗрд╕ рд╕реНрдкреЗрд╕ рдореЗрдВ рдкрд╣рд▓реЗ рдмрд╛рдИрдЯрдХреЛрдб рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХреА рдЧрдИ рдереА, рдФрд░ рдЕрдм рдпрд╣ рдПрдХ рд╣реА рдХреЙрдкреА рдореЗрдВ рдореМрдЬреВрдж рд╣реИред
рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рд╕рд░реНрдХрд┐рдЯ рдореЗрдВ рдЬреЗрдЖрдИрдЯреА рдХреЛ рдПрдореНрдмреЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рд╣рдо рдХрд░реЗрдВрдЧреЗред рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ, рдореИрдВ рдЖрдкрдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реВрдБ рдХрд┐ рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдПрдХ рджреБрднрд╛рд╖рд┐рдпрд╛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рд▓реВрдк рд╣реИ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдмреБрд▓рд╛рддрд╛ рд╣реИред
рд╣рдо рджреЛ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:
- execute_data - рд╡рд░реНрддрдорд╛рди рд╕рдХреНрд░рд┐рдпрдг рдлрд╝реНрд░реЗрдо рдХрд╛ рд╕реВрдЪрдХ;
- opline - рд╡рд░реНрддрдорд╛рди рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдЖрднрд╛рд╕реА рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд▓рд┐рдП рд╕реВрдЪрдХред
рдЬреАрд╕реАрд╕реА рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдпреЗ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░рдЬрд┐рд╕реНрдЯрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЛ рдореИрдк рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рдХреЗ рдХрд╛рд░рдг рд╡реЗ рдмрд╣реБрдд рдЬрд▓реНрджреА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
рд▓реВрдк рдореЗрдВ, рд╣рдо рдмрд╕ рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд▓рд┐рдП рд╣реИрдВрдбрд▓рд░ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдкреНрд░рддреНрдпреЗрдХ рд╣реИрдВрдбрд▓рд░ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╣рдо рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдЕрдЧрд▓реЗ рдирд┐рд░реНрджреЗрд╢ рдкрд░ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВред
рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд╣реИрдВрдбрд▓рд░ рдХрд╛ рдкрддрд╛ рд╕реАрдзреЗ рдмрд╛рдпрдЯреЗрдХреЛрдб рдХреЛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдПрдХ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд▓рд┐рдП рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реИрдВрдбрд▓рд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рдХреЗ рд▓рд┐рдП рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рддрд╛рдХрд┐ рд╣реИрдВрдбрд▓рд░ рдСрдкрд░реЗрдВрдб рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдмрди рд╕рдХреЗрдВред рдЬреЗрдЖрдИрдЯреА рдХреЗ рд▓рд┐рдП рдЙрд╕реА рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐ рдЖрдк рдПрдХ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдирдП рдЬреЗрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рдХреЛрдб рдХреЛ рдПрдбреНрд░реЗрд╕ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЬреЗрдЖрдИрдЯреА-рд╣реИрдВрдбрд▓рд░ рдХреЛ рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рдореЗрдВ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдХрд┐рдП рдмрд┐рдирд╛ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдКрдкрд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВрдбрд▓рд░ рдХреЛ рджрд╛рдИрдВ рдУрд░ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдСрдкрд░реЗрдВрдб рд▓реЗрддрд╛ рд╣реИ (рдпрд╣рд╛рдВ рдкрд╣рд▓рд╛ рдФрд░ рджреВрд╕рд░рд╛ рдПрдХ рд╕реНрдерд┐рд░, рдЕрд╕реНрдерд╛рдпреА рдпрд╛ рд╕реНрдерд╛рдиреАрдп рдЪрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ), рдСрдкрд░реЗрдВрдб, рдЪреЗрдХ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдкрдврд╝рддрд╛ рд╣реИ, рдкреНрд░рддреНрдпрдХреНрд╖ рддрд░реНрдХ - рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИ - рдФрд░ рдлрд┐рд░ рд╡рд╛рдкрд╕ рд▓реВрдк рдореЗрдВ рд▓реМрдЯрддрд╛ рд╣реИ, рдЬреЛ рдЕрдЧрд▓реЗ рд╣реИрдВрдбрд▓рд░ рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЗрд╕ рд╡рд┐рд╡рд░рдг рд╕реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдп рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВред рдЪреВрдВрдХрд┐ рддреАрди рд╕рдВрднрд╛рд╡рд┐рдд рдкрд╣рд▓реЗ рдСрдкрд░реЗрдВрдб рдереЗ, рддреАрди рд╕рдВрднрд╡ рджреВрд╕рд░реЗ, рд╣рдореЗрдВ 9 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдп рдорд┐рд▓рддреЗ рд╣реИрдВред

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

рдРрд╕рд╛ рд▓рдЧрддрд╛ рдерд╛ рдХрд┐ рдкрд╣рд▓реЗ рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рдХреЙрд▓ рдХрд┐рдпрд╛ рдерд╛, рдЕрдм рджреЛ: рдПрдХ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд╕рдВрдХреНрд░рдордг рдФрд░ рдПрдХ рдкреНрд░рддреНрдпрдХреНрд╖ рдХреЙрд▓, рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреА рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдзреАрд░реЗ-рдзреАрд░реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рд╕рдВрдХреНрд░рдордг рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВред рдкрд╣рд▓реЗ, рдПрдХ рдмрд┐рдВрджреБ рдерд╛ рдЬрд╣рд╛рдВ рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рд╕рдВрдХреНрд░рдордг рд╣реБрдЖ рдерд╛ред рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рдЕрдХреНрд╕рд░ рдЧрд▓рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд╕ рдпрд╛рдж рдирд╣реАрдВ рд░рдЦ рд╕рдХрддрд╛ рдерд╛ рдХрд┐ рдкрд╣рд▓реЗ рдПрдХ рдирд┐рд░реНрджреЗрд╢ рдкрд░ рдХреВрджрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛, рдлрд┐рд░ рджреВрд╕рд░реЗ рдкрд░ред рдЕрдм, рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рддреНрдпрдХреНрд╖ рдХреЙрд▓ рдХреЗ рдмрд╛рдж, рдЕрдЧрд▓реЗ рд▓реЗрдмрд▓ рдкрд░ рдПрдХ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд╕рдВрдХреНрд░рдордг рд╣реЛрддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЬрдм PHP рд▓реВрдк рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╡рд░реНрдЪреБрдЕрд▓ PHP рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рд╕реНрдерд┐рд░ рдЕрдиреБрдХреНрд░рдореЛрдВ рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рддрдм рд▓рдЧрднрдЧ рд░реИрдЦрд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред
рд╣рд╛рдЗрдмреНрд░рд┐рдб рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдиреЗ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдХреЛ 5-10% рддрдХ рдмрдврд╝рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред
PHP + OPcache + JIT
рдЬреЗрдЖрдИрдЯреА рдХреЛ рдУрдкреЗрдХ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдмрд╛рдЗрдЯрдХреЛрдб рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдФрд░ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЬреЗрдЖрдИрдЯреА рд╕рдВрдХрд▓рдХ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЕрдм рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред PHP bytecode рд╕реЗ, JIT рд╕рдВрдХрд▓рдХ рдореВрд▓ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдкрд╣рд▓реЗ рдирд┐рд░реНрджреЗрд╢ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди) рдХрд╛ рдкрддрд╛ bytecode рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред
рдЙрд╕рдХреЗ рдмрд╛рдж, рдореВрд▓, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрддреНрдкрдиреНрди рдХреЛрдб рдХреЛ рдХрд┐рд╕реА рднреА рдмрджрд▓рд╛рд╡ рдХреЗ рдмрд┐рдирд╛ рдореМрдЬреВрджрд╛ рджреБрднрд╛рд╖рд┐рдпрд╛ рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рдКрдВрдЧрд╛ред

рдмрд╛рдИрдВ рдУрд░, PHP рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ 0 рд╕реЗ 100 рддрдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдпреЛрдЧ рдЧрд┐рдирд╛рддрд╛ рд╣реИред рджрд╛рдИрдВ рдУрд░, рдЙрддреНрдкрдиреНрди рдмрд╛рдпрдЯреЗрдХреЛрдбред рдкрд╣рд▓рд╛ рдирд┐рд░реНрджреЗрд╢ 0 рдХреЛ рдпреЛрдЧ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ рдореИрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рд▓реЗрдмрд▓ рдХреЗ рд▓рд┐рдП рдмрд┐рдирд╛ рд╢рд░реНрдд рдХреВрджред рд▓реЗрдмрд▓ L1 рдкрд░, рдЪрдХреНрд░ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ: рдпрджрд┐ рдпрд╣ рдкреВрд░реА рд╣реЛ рдЧрдИ рд╣реИ, рддреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ, рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЪрдХреНрд░ рдкрд░ рдЬрд╛рдПрдБред рдЗрд╕рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рд░рд╛рд╢рд┐ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ, рдкрд░рд┐рдгрд╛рдо рдХреЛ рд░рд╛рд╢рд┐ рдореЗрдВ рд▓рд┐рдЦреЗрдВ, 1 рд╕реЗ рдмрдврд╝рд╛рдПрдВред
рдпрд╣рд╛рдБ рд╕реЗ рд╕реАрдзреЗ рд╣рдо рдХреЛрдбрд╛рдВрддрд░рдХ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд┐рдХрд▓рддрд╛ рд╣реИред

рдкрд╣рд▓рд╛
QM_ASSIGN
рдирд┐рд░реНрджреЗрд╢ рд╕рд┐рд░реНрдл рджреЛ рдорд╢реАрди рдирд┐рд░реНрджреЗрд╢реЛрдВ (2-3 рд▓рд╛рдЗрдиреЛрдВ) рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
%esi
рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд╕рдХреНрд░рд┐рдпрдг рдлреНрд░реЗрдо рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ рд╣реЛрддрд╛ рд╣реИред 30 рдСрдлрд╕реЗрдЯ рдкрд░ рдПрдХ рдЪрд░ рд░рд╛рд╢рд┐ рдирд┐рд╣рд┐рдд рд╣реИред рдкрд╣рд▓рд╛ рдирд┐рд░реНрджреЗрд╢ рдорд╛рди 0 рд▓рд┐рдЦрддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ 4 рд▓рд┐рдЦрддрд╛ рд╣реИ - рдпрд╣ рдкреВрд░реНрдгрд╛рдВрдХ рдкреНрд░рдХрд╛рд░ (
IS_LONG
) рдХрд╛ рдПрдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реИред рдЪрд░
i
рд╕рдВрдХрд▓рдХ рдиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣ рд╣рдореЗрд╢рд╛ рд▓рдВрдмрд╛ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрд╛рд░ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдПрдХ рдорд╢реАрди рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрд╣рд╛рдБ рдХреЗрд╡рд▓ рдЕрдкрдиреЗ рд╕рд╛рде рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд╛ XOR рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рд░рд▓ рдФрд░ рд╕рд╕реНрддрд╛ рдирд┐рд░реНрджреЗрд╢ рд╣реИред
рдлрд┐рд░, рдЙрд╕реА рддрд░рд╣, рдмрд┐рдирд╛ рд╢рд░реНрдд рд╕рдВрдХреНрд░рдордг, рд╣рдо рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдмрд╛рд╣рд░реА рдШрдЯрдирд╛ рд╣реБрдИ рд╣реИ, рд╣рдо рдЪрдХреНрд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ, рд╣рдо рдЪрдХреНрд░ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВред рд▓реВрдк рдореЗрдВ, рдпрд╣ рдЬрд╛рдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпреЛрдЧ рдкреВрд░реНрдгрд╛рдВрдХ рд╣реИ: рдпрджрд┐ рд╣рд╛рдБ, рддреЛ рд╣рдо рдкреВрд░реНрдгрд╛рдВрдХ рдорд╛рди рдХреЛ рдкрдврд╝рддреЗ рд╣реИрдВ, рдЗрд╕рдореЗрдВ рдорд╛рди рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдпрджрд┐ рдХреЛрдИ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рд╣реИ, рддреЛ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╡рд╛рдкрд╕ рд░рд╛рд╢рд┐ рдореЗрдВ рд▓рд┐рдЦреЗрдВ рдФрд░ 1
%edx
рдЬреЛрдбрд╝реЗрдВред
рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдб рдЗрд╖реНрдЯрддрдо рдХреЗ рдХрд░реАрдм рд╣реИред рд▓реВрдк рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░ рдЯрд╛рдЗрдк рдХреЗ рд▓рд┐рдП рд░рд╛рд╢рд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдФрд░ рднреА рдЕрдзрд┐рдХ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдлреА рдЬрдЯрд┐рд▓ рдЕрдиреБрдХреВрд▓рди рд╣реИ, рд╣рдо рдЕрднреА рддрдХ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
рд╣рдо рдЬреЗрдЖрдИрдЯреА рдХреЛ рдХрд╛рдлреА рд╕рд░рд▓ рддрдХрдиреАрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ , рд╣рдо рдпрд╣ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдЬрд╛рд╡рд╛ рд╣реЙрдЯрд╕реНрдкреЙрдЯ рд╡реА 8 рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ - рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдо рд╢рдХреНрддрд┐ рд╣реИред
рдЬреАрдЯ рдореЗрдВ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реИ
рдРрд╕реЗ рдЕрдЪреНрдЫреЗ рдХреЛрдбрд░ рдХреЛрдб рдХреЗ рд╕рд╛рде, рд╣рдо рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдЧрддрд┐ рдХреНрдпреЛрдВ рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ?
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡реЗ рдЪрд╛рд╣рд┐рдП?
- рдпрджрд┐ рдЕрдбрд╝рдЪрди рд╕реАрдкреАрдпреВ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЬреЗрдЖрдИрдЯреА рдорджрдж рдирд╣реАрдВ рдХрд░реЗрдЧреАред
- рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреЛрдб рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ (рдХреЛрдб рдмреНрд▓реЛрдЯ)ред
- рд╕реНрдереИрддрд┐рдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдирд┐рд╖реНрдХрд░реНрд╖ рд╣рдореЗрд╢рд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
- рдИрдорд╛рдирджрд╛рд░ рдХреЛрдб (рдЙрди рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдиреНрд╣реЗрдВ рдХрднреА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред
- рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреА рд╕реБрд╕рдВрдЧрдд рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди (рдФрд░ рдЕрдЪрд╛рдирдХ рдПрдХ рдЕрдкрд╡рд╛рдж)ред
- рдХрдХреНрд╖рд╛рдПрдВ рдХреЗрд╡рд▓ рдПрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рд░рд╣рддреА рд╣реИрдВред
рдпрджрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП 80% рд╕рдордп рдЗрдВрддрдЬрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рддреЛ JIT рдорджрдж рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рд╣рдо рдмрд╛рд╣рд░реА рд╕рдВрд╕рд╛рдзрди-рдЧрд╣рди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд╣рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рдЬреЗрдЖрдИрдЯреА рдЙрд╕реА рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рднреА рдХреЙрд▓ рдХрд░реЗрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдХреЛрдИ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдбрд╝реЗ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░рдХреНрдЪрд░реНрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛ рд╣реИ - рдкреЗрдбрд╝, рдЧреНрд░рд╛рдл, рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рдкрдврд╝рддрд╛ рд╣реИ, рддреЛ рдЬреЗрдЖрдИрдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдо рдРрд╕реЗ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдХрдо рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рдкрдврд╝реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдбреЗрдЯрд╛ рдХреЛ рд╕реНрд╡рдпрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрдХ рд╣реА рд╕рдордп рд▓рдЧреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдХреЛрдб рд▓реЛрдб рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╣реА рджреЗрдЦ рдЪреБрдХреЗ рд╣реИрдВ, рдЬреЗрдЖрдИрдЯреА рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдзреАрдорд╛ рднреА рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдкрдврд╝рдирд╛ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдмрди рдЬрд╛рддрд╛ рд╣реИ - рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдХреЛрдб рдкрдврд╝рдиреЗ рдкрд░, рдЕрдиреНрдп рдбреЗрдЯрд╛ рдХреИрд╢ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдордВрджреА рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред
PHP 8 рдХреЗ рд▓рд┐рдП рдорд╛рдореВрд▓реА рдпреЛрдЬрдирд╛рдПрдВ
PHP 8 рдореЗрдВ рд╣рдо рдЬреЛ рд╕реБрдзрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ
рдХрдо рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ ред рдЕрдм, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, рд╣рдо рдкреВрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рджреЗрд╢реА рдХреЛрдб рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╣рдо рд▓реЛрдбрд┐рдВрдЧ рд╕реНрдЯреЗрдЬ рдкрд░ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЖрдзреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рд▓рд┐рдП рд╣рдо рдереЛрдбрд╝рд╛ рдЖрдЧреЗ рдмрдврд╝реЗ рдФрд░ рдПрдХ рдЯреНрд░рд┐рдЧрд░ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬреЛ рд╣рдореЗрдВ JIT рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕реЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
- рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП;
- рдХреЗрд╡рд▓ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрдм рдЙрдиреНрд╣реЗрдВ рдкрд╣рд▓реА рдмрд╛рд░ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
- рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдкрд░ рдПрдХ рдХрд╛рдЙрдВрдЯрд░ рд▓рдЯрдХрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЧрд░реНрдо рд╣реИрдВред
рдЗрд╕ рддрд░рд╣ рдХреА рдпреЛрдЬрдирд╛ рдереЛрдбрд╝рд╛ рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдЗрд╖реНрдЯрддрдо рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдкрде рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╡реЗ рдкрде рдЬреЛ рдХрднреА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдЪреВрдВрдХрд┐ PHP рдПрдХ рдЧрддрд┐рд╢реАрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдкреНрд░рддреНрдпреЗрдХ рдЪрд░ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЙрди рд╕рднреА рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рддрд╛ рд╣реИред рдФрд░ рд╡рд╣ рдЕрдХреНрд╕рд░ рд╕рд╛рд╡рдзрд╛рдиреА рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реИ рдЬрдм рд╡рд╣ рдпрд╣ рд╕рд╛рдмрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рдерд╛ рдХрд┐ рджреВрд╕рд░рд╛ рдкреНрд░рдХрд╛рд░ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдЗрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ, рд╣рдо рдИрдорд╛рдирджрд╛рд░ рд╕рдВрдХрд▓рди рд╕реЗ рджреВрд░ рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╕рдЯреНрдЯрд╛ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рд╣рдо рдкрд╣рд▓реЗ рдЖрд╡реЗрджрди рдХреЗ рдХрд╛рдо рдХреЗ рджреМрд░рд╛рди рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП "рд╕рдмрд╕реЗ рдЧрд░реНрдо" рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдорд╛рд░реНрдЧреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рдпрд╣ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЪрд░ рд╣реИрдВ, рд╢рд╛рдпрдж рд╕реАрдорд╛ рдХреА рд╢рд░реНрддреЛрдВ рдХреЛ рднреА рдпрд╛рдж рд░рдЦреЗрдВ, рдФрд░ рдХреЗрд╡рд▓ рддрдм рдлрд╝рдВрдХреНрд╢рди рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдХреЗ рд▓рд┐рдП рдЗрд╖реНрдЯрддрдо рд╣реИред рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рддрд░реАрдХрд╛ - рдХреЗрд╡рд▓ рдЙрди рд╡рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдиреНрд╣реЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдмрд╛рдХреА рд╕рдм рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рд╣рдо рд╕реНрдЯрдмреНрд╕ рд▓рдЧрд╛рдПрдВрдЧреЗред рд╕рднреА рд╕рдорд╛рди, рдЪреЗрдХ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рдЖрдЙрдЯрдкреБрдЯ рд╣реЛрдВрдЧреЗ, рдЬрд┐рд╕ рдкрд░ рдбреАрдУрдкрд┐рдЯрд┐рдорд╛рдЗрдЬреЗрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рд╣реЛрдЧреА, рдЕрд░реНрдерд╛рдд рд╣рдо рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреЛ рджреЗрдВрдЧреЗред
рдПрдХ рд╕рдорд╛рди рдпреЛрдЬрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реЙрдЯрд╕реНрдкреЙрдЯ рдЬрд╛рд╡рд╛ рд╡реАрдПрдо рдФрд░ рд╡реА 8 рджреЛрдиреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди PHP рдореЗрдВ рддрдХрдиреАрдХ рдХреЛ рдЕрдкрдирд╛рдиреЗ рд╕реЗ рдХрдИ рдореБрд╢реНрдХрд┐рд▓реЗрдВ рдЖрддреА рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдмрд╛рдпрдЯреЗрдХреЛрдб рдФрд░ рд╕рд╛рдЭрд╛ рджреЗрд╢реА рдХреЛрдб рд╕рд╛рдЭрд╛ рдХрд┐рдП рд╣реИрдВред рд╣рдо рдЙрдиреНрд╣реЗрдВ рд╕реАрдзреЗ рд╕рд╛рдЭрд╛ рдХреА рдЧрдИ рдореЗрдореЛрд░реА рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддреЗ, рд╣рдореЗрдВ рдкрд╣рд▓реЗ рдХрд╣реАрдВ рдХреЙрдкреА рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдлрд┐рд░ рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реА рдореЗрдВ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдкреНрд░реАрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рд╡рд░реНрдЧ рдмрдВрдзрди рдХреА рд╕рдорд╕реНрдпрд╛
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, PHP рд╕рдВрд╡рд░реНрджреНрдзрди рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд┐рдЪрд╛рд░ рдЬреЛ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ PHP 7 рдореЗрдВ рд╕рдореНтАНрдорд┐рд▓рд┐рдд рд╣реИрдВ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ PHP 5 JIT рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХрд╛рд░реНрдп рд╕реЗ рдЖрддреЗ рд╣реИрдВред рдЖрдЬ рдореИрдВ рдПрдХ рдФрд░ рдРрд╕реА рддрдХрдиреАрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ - рдпрд╣ рдкреНрд░реАрд▓реЛрдбрд┐рдВрдЧ рд╣реИред рдпрд╣ рддрдХрдиреАрдХ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА PHP 7.4 рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ рдФрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛, рдЙрдиреНрд╣реЗрдВ рд╕рд░реНрд╡рд░ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рд▓реЛрдб рдХрд░рдирд╛ рдФрд░ рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕реНрдерд╛рдпреА рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред
рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдХрд┐ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХреЛ рдкреВрд░реНрд╡ рд▓реЛрдб рдХрд░рдирд╛ рд╡рд░реНрдЧ рдмрдВрдзрди рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рд╣рдо рдмрд╕ PHP рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рджреВрд╕рд░реЛрдВ рд╕реЗ рдЕрд▓рдЧ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдк рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдПрдХ рдХреНрд▓рд╛рд╕ рдХреЛ рджреВрд╕рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдПрдХ рдХреНрд▓рд╛рд╕ рд╕реЗ рдирд╣реАрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдЧрд▓реЗ рдЕрдиреБрд░реЛрдз рдкрд░ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдХреБрдЫ рдЧрд▓рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдПрдХ рд╣реА рдирд╛рдо рдХрд╛ рдПрдХ рд╡рд░реНрдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде, рдХрд┐рд╕реА рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓ рд╕реЗ рджреВрд╕рд░реА рдХрдХреНрд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рд╕рд╛рде, рд▓реЗрдХрд┐рди рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдХреЗ рд╕рд╛рде)ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдХрдИ рдЕрдиреБрд░реЛрдзреЛрдВ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╕рдордп, рдЖрдк рдХрдХреНрд╖рд╛рдУрдВ рдпрд╛ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╣рд░ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ (рдХреЛрдб рдЬреАрд╡рдирдХрд╛рд▓ рд╡рд░реНрдЧ рдЬреАрд╡рдирдХрд╛рд▓ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрддрд╛ рд╣реИ)ред
рдкреНрд░реАрд▓реЛрдбрд┐рдВрдЧ рдЖрдкрдХреЛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░реВрдк рд╕реЗ рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдмрд╛рдВрдзрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░, рддрджрдиреБрд╕рд╛рд░, рдХреЛрдб рдХреЛ рдЕрдзрд┐рдХ рдЖрд╢рд╛рд╡рд╛рджреА рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдХрдо рд╕реЗ рдХрдо, рдРрд╕реЗ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рдЬрд┐рдиреНрд╣реЗрдВ рдкреНрд░реАрд▓реЛрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдпрд╣ рддрдХрдиреАрдХ рди рдХреЗрд╡рд▓ рд╡рд░реНрдЧ рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдорджрдж рдХрд░рддреА рд╣реИред рдХреБрдЫ рдЗрд╕реА рддрд░рд╣ рдЬрд╛рд╡рд╛ рдореЗрдВ рдХреНрд▓рд╛рд╕ рдбреЗрдЯрд╛ рд╢реЗрдпрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡рд╣рд╛рдВ, рдЗрд╕ рддрдХрдиреАрдХ рдХрд╛ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдкреНрд░рдХреНрд╖реЗрдкрдг рдореЗрдВ рддреЗрдЬреА рд▓рд╛рдиреЗ рдФрд░ рдЦрдкрдд рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕реНрдореГрддрд┐ рдХреА рдХреБрд▓ рдорд╛рддреНрд░рд╛ рдХреЛ рдХрдо рдХрд░рдирд╛ рд╣реИред PHP рдореЗрдВ рд╕рдорд╛рди рдкреНрд▓рд╕ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдм рдХреНрд▓рд╛рд╕ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ, рдмрд▓реНрдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдХреА рдЬрд╛рддреА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рдВрдмрджреНрдз рдХрдХреНрд╖рд╛рдПрдВ рдЕрдм рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдкрддреЗ рд╕реНрдерд╛рди рдореЗрдВ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рддреА рд╣реИрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдХреБрд▓ рдореЗрдореЛрд░реА рдЦрдкрдд рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИред
рдкреНрд░реАрд▓реЛрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рднреА PHP рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рд╡реИрд╢реНрд╡рд┐рдХ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд╕рд╛рде рднреА рдорджрдж рдХрд░рддрд╛ рд╣реИ, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдУрдкреЗрдХ рдУрд╡рд░рд╣реЗрдб рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдЖрдИрдЖрдИрдЯреА рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдиреБрдХрд╕рд╛рди рднреА рд╣реИрдВред
рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рд▓реЛрдб рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ PHP рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд┐рдП рдмрд┐рдирд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рд╣рдордиреЗ рдХреБрдЫ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕реНрдерд╛рдпреА рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕реЗ рдЕрдирд▓реЛрдб рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдЗрд╕рд▓рд┐рдП, рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдерд┐рд░ рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рджрд┐рди рдореЗрдВ рдХрдИ рдмрд╛рд░ рдЖрд╡реЗрджрди рдХреЛ рддреИрдирд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
рддрдХрдиреАрдХ рдХреА рдХрд▓реНрдкрдирд╛ рдкрд╛рд░рджрд░реНрд╢реА рдХреЗ рд░реВрдк рдореЗрдВ рдХреА рдЧрдИ рдереА, рдЕрд░реНрдерд╛рдд рдЗрд╕рдиреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдореМрдЬреВрджрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ (рдпрд╛ рднрд╛рдЧреЛрдВ) рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред рд▓реЗрдХрд┐рди рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдЪ рдирд╣реАрдВ рд╣реИред
рд╕рднреА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рд╡реЗ рдкреНрд░реАрд▓реЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЛрдб рдХрд┐рдП рдЧрдП рдереЗ ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐
function_exists
рдпрд╛
class_exists
рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдПрдХ рдХреЛрдб рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдирд┐рд░рдВрддрд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрд░рдорд╢рдГ,
function_exists
рд╣рдореЗрд╢рд╛
true
рд╣реЛ рдЬрд╛рддрд╛
true
, рдФрд░ рдЬреЛ рдХреЛрдб рдкрд╣рд▓реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рдерд╛, рдЙрд╕реЗ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рдерд╛ред
рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ, рдкреНрд░реАрд▓реЛрдбрд┐рдВрдЧ рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдирд┐рд░реНрджреЗрд╢ opcache.preload рдХреА рдорджрдж рд╕реЗ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рдЖрдк рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рджреЗрддреЗ рд╣реИрдВ - рдПрдХ рдирд┐рдпрдорд┐рдд PHP рдлрд╝рд╛рдЗрд▓ рдЬрд┐рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдЪрд░рдг рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рди рдХреЗрд╡рд▓ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛, рдмрд▓реНрдХрд┐ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛)ред
<?php function _preload(string $preload, string $pattern = "/\.php$/") { if (is_file($path) && preg_match($pattern, $path)) { opcache_compile_file($path) or die("Preloading failed"); } else if (is_dir($path)) { if ($dh = opendir($path)) { while (($file = readdir($dh)) !== false) { if ($file !== "." && $file !== "..") { _preload($path . "/" . $file, $pattern); } } closedir($dh); } } } _preload("/usr/local/lib/ZendFramework");
рдпрд╣ рдЙрди рд╕рдВрднрд╛рд╡рд┐рдд рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдЬреЛ рдХрд┐рд╕реА рди рдХрд┐рд╕реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, ZendFramework) рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреБрди: рдкрдврд╝рдиреЗ рджреЗрддрд╛ рд╣реИред рдЖрдк PHP рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд┐рд╕реА рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдПрдХ рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдкрдврд╝реЗрдВ, рдЕрдкрд╡рд╛рдж рдЬреЛрдбрд╝реЗрдВ, рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рдВрдЧреАрддрдХрд╛рд░ рдХреЗ рд╕рд╛рде рдкрд╛рд░ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдпрд╣ рдкреЙрдбреЛрд╡рд╛рд▓ рдлрд╛рдЗрд▓реЗрдВ рд╣реЛ рдЬреЛ рдкреНрд░реАрд▓реЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред рдпрд╣ рд╕рдм рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ, рдФрд░ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдЬрд╣рд╛рдЬ рдХрд░рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдЬрд╣рд╛рдЬ рдХрд░рдирд╛ рд╣реИред
рдкреНрд░реАрд▓реЛрдбрд┐рдВрдЧ рдореЗрдВ рдХреНрдпрд╛ рд▓реЛрдб рдХрд░рдирд╛ рд╣реИ
рдореИрдВрдиреЗ рдЗрд╕ рддрдХрдиреАрдХ рдХреЛ рд╡рд░реНрдбрдкреНрд░реЗрд╕ рдкрд░ рдЖрдЬрдорд╛рдпрд╛ред рдпрджрд┐ рдЖрдк рд╕рднреА * .php рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрд╕ рдЕрдкрд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡рд░реНрдбрдкреНрд░реЗрд╕ рдкрд╣рд▓реЗ рдмрддрд╛рдИ рдЧрдИ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдХрд╛рд░рдг рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрдЧрд╛: рдЗрд╕рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди_рдПрдХреНрд╕рд┐рд╕реНрдЯ рдЪреЗрдХ рд╣реИ, рдЬреЛ рд╣рдореЗрд╢рд╛ рд╕рдЪ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореБрдЭреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг (рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдЬреЛрдбрд╝реЗрдВ) рд╕реЗ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдФрд░ рдлрд┐рд░, рд╡рд░реНрдбрдкреНрд░реЗрд╕ рдореЗрдВ рдХрд┐рд╕реА рднреА рдмрджрд▓рд╛рд╡ рдХреЗ рдмрд┐рдирд╛, рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛ред
рдирддреАрдЬрддрди,
рдкреНрд░реАрд▓реЛрдбрд┐рдВрдЧ рдХреЗ рдХрд╛рд░рдг рд╣рдореЗрдВ ~ 5% рддреНрд╡рд░рдг рдорд┐рд▓рд╛ , рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЦрд░рд╛рдм рдирд╣реАрдВ рд╣реИред
рдореИрдВрдиреЗ рд▓рдЧрднрдЧ рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЙрдирдореЗрдВ рд╕реЗ рдЖрдзреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЖрдк рдФрд░ рднреА рдмреЗрд╣рддрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЪрд▓рд╛рдПрдВ, рджреЗрдЦреЗрдВ рдХрд┐ рдХреМрди рд╕реА рдлрд╛рдЗрд▓реЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рд╣реИрдВред рдЖрдк
opcache_get_status()
рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рд╕рднреА OPcache рдХреИрд╢реНрдб рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдЧрд╛ рдФрд░ рдкреНрд░реАрд▓реЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрдирдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪреА рдмрдирд╛рдПрдЧрд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк 3 рдПрдордмреА рдмрдЪрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рддреНрд╡рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рддрдирд╛ рдЕрдзрд┐рдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреИрд╢ рдЧрдВрджрд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрддрдирд╛ рд╣реА рдХрдо рдХреБрд╢рд▓ рд╣реЛрддрд╛ рд╣реИред
рдХрдо рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрдЪреНрдЪ рдЧрддрд┐редрдПрдлрдПрдлрдЖрдИ - рд╡рд┐рджреЗрд╢реА рдлрд╝рдВрдХреНрд╢рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕
рдПрдХ рдФрд░ рдЬреЗрдЖрдИрдЯреА-рд╕рдВрдмрдВрдзрд┐рдд рддрдХрдиреАрдХ рдЬреЛ PHP рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рдХреА рдЧрдИ рдереА, рд╡рд╣ рдПрдлрдПрдлрдЖрдИ (рдлреЙрд░реЗрди рдлрдВрдХреНрд╢рди рдЗрдВрдЯрд░рдлреЗрд╕) рд╣реИ рдпрд╛ рд░реВрд╕реА рдореЗрдВ, рд╕рдВрдХрд▓рди рдХреЗ рдмрд┐рдирд╛ рдЕрдиреНрдп рд╕рдВрдХрд▓рд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред рдкрд╛рдпрдерди рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреА рддрдХрдиреАрдХ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдиреЗ рдореЗрд░реЗ рдмреЙрд╕ (рдЬрд╝реАрд╡ рд╕реБрд░рдЬрд╝рдХреА) рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдпрд╛, рдФрд░ рдЬрдм рдореИрдВрдиреЗ рдЗрд╕реЗ PHP рдореЗрдВ рдмрджрд▓рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рддреЛ рдореИрдВ рдмрд╣реБрдд рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реБрдЖред
PHP рдореЗрдВ FFI рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдИ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рд╕рднреА рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рднрд╛рд╖рд╛ рдпрд╛ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВрдиреЗ LuaJIT рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рдХреА рдЬрд╛рд╕реВрд╕реА рдХреА, рдЬрд╣рд╛рдВ рд╕реА рднрд╛рд╖рд╛ (рдПрдХ рдЙрдкрд╕рдореБрдЪреНрдЪрдп) рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдкрд░рд┐рдгрд╛рдо рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдЦрд┐рд▓реМрдирд╛ рд╣реИред рдЕрдм, рдЬрдм рдореБрдЭреЗ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╕реА рдореЗрдВ рдХреБрдЫ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕реЗ PHP рдореЗрдВ рд▓рд┐рдЦрддрд╛ рд╣реВрдВ - рдпрд╣ рд╣реЛрддрд╛ рд╣реИ, рдареАрдХ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ред
рдПрдлрдПрдлрдЖрдИ рдЖрдкрдХреЛ рд╕реА рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЗрдЖрдИрдЯреА рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреА рд▓реАрдмреА-рдЖрдзрд╛рд░рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди PHP 7.4 рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╢рд╛рдорд┐рд▓ рд╣реИред
рд▓реЗрдХрд┐рди:
- рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдкреИрд░ рдореЗрдВ рдЧреЛрд▓реА рдорд╛рд░рдиреЗ рдХреЗ рдпреЗ 1000 рдирдП рддрд░реАрдХреЗ рд╣реИрдВред
- C рдЬреНрдЮрд╛рди рдФрд░ рдХрднреА-рдХрднреА рдореИрдиреНрдпреБрдЕрд▓ рдореЗрдореЛрд░реА рдкреНрд░рдмрдВрдзрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
- C- рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ (#include, #define, ...) рдФрд░ C ++ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
- JIT рдХреЗ рдмрд┐рдирд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд╛рдлреА рдХрдо рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╢рд╛рдпрдж рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╕рдВрдХрд▓рдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд, рдпрд╣ PHP рд╕реЗ рдХрд┐рд╕реА рднреА рд╡рд┐рдЬрд╝реБрдЕрд▓-рд╕реА рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рдореИрдВ рдЖрдкрдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реВрдБ рдХрд┐ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ GUI рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП FFI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВред
рд╕реА рдХреЛрдб рд╕реЗ рдЪрд┐рдВрддрд┐рдд рди рд╣реЛрдВ, рдореИрдВрдиреЗ рдЦреБрдж рд▓рдЧрднрдЧ 20 рд╕рд╛рд▓ рдкрд╣рд▓реЗ рд╕реА рдореЗрдВ рдПрдХ рдЬреАрдпреВрдЖрдИ рд▓рд┐рдЦрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдорд┐рд▓рд╛ред
#include <gtk/gtk.h> static void activate(GtkApplication* app, gpointer user_data) { GtkWidget *window = gtk_application_window_new(app); gtk_window_set_title(GTK_WINDOW(window), "Hello from C"); gtk_window_set_default_size(GTK_WINDOW(window), 200, 200); gtk_widget_show_all(window); } int main() { int status; GtkApplication *app; app = gtk_application_new("org.gtk.example", G_APPLICATION_FLAGS_NONE); g_signal_connect(app, "activate", G_CALLBACK(activate), NULL); status = g_application_run(G_APPLICATION(app), 0, NULL); g_object_unref(app); return status; }
рдХрд╛рд░реНрдпрдХреНрд░рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рддрд╛ рд╣реИ, рд╕рдХреНрд░рд┐рдп рдХреЙрд▓рдмреИрдХ рдИрд╡реЗрдВрдЯ рдкрд░ рд▓рдЯрдХрд╛ рджреЗрддрд╛ рд╣реИ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реИред рдХреЙрд▓рдмреИрдХ рдореЗрдВ, рдПрдХ рд╡рд┐рдВрдбреЛ рдмрдирд╛рдПрдВ, рдЗрд╕реЗ рд╢реАрд░реНрд╖рдХ рдЖрдХрд╛рд░ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рджрд┐рдЦрд╛рдПрдВред
рдФрд░ рдЕрдм, рд╡рд╣реА рдЪреАрдЬрд╝ PHP рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреА рдЧрдИ рд╣реИ:
<?php $ffi = FFI::cdef(" тАж // #include <gtk/gtk.h> ", "libgtk-3.so.0"); function activate($app, $user_data) { global $ffi; $window = $ffi->gtk_application_window_new($app); $ffi->gtk_window_set_title($window, "Hello from PHP"); $ffi->gtk_window_set_default_size($window, 200, 200); $ffi->gtk_widget_show_all($window); } $app = $ffi->gtk_application_new("org.gtk.example", 0); $ffi->g_signal_connect_data($app, "activate", "activate", NULL, NULL, 0); $ffi->g_application_run($app, 0, NULL); $ffi->g_object_unref($app);
рдпрд╣рд╛рдВ, рдПрдлрдПрдлрдЖрдИ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╣рд▓реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдПрдХ рд╡рд┐рд╡рд░рдг рдЙрд╕реЗ рдПрдХ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ - рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдПрдХ рдПрдЪ-рдлрд╝рд╛рдЗрд▓ - рдФрд░ рдЬрд┐рд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд╣рдо рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЙрд╕рдХреЗ рдмрд╛рдж, рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╕рднреА рдлрд╝рдВрдХреНрд╢рди рдПрдлрдПрдл рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рд╕рднреА рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдФрд░ рдмрд┐рд▓реНрдХреБрд▓ рдкрд╛рд░рджрд░реНрд╢реА рд░реВрдк рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдорд╢реАрди рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред
рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╡реИрд╕рд╛ рд╣реА рд╣реИ рдЬреИрд╕рд╛ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдерд╛ред рдПрдХрдорд╛рддреНрд░ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рд╕реА рдореЗрдВ рд╣рдордиреЗ рдПрдХ рдкрддреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрд▓рдмреИрдХ рднреЗрдЬрд╛, рдФрд░ рдкреАрдПрдЪрдкреА рдореЗрдВ, рдХрдиреЗрдХреНрд╢рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ рджрд┐рдП рдЧрдП рдирд╛рдо рд╕реЗ рд╣реЛрддрд╛ рд╣реИред
рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ, рд╣рдо C рдореЗрдВ рдкреНрд░рдХрд╛рд░реЛрдВ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╣рдо рд╕рд╛рдЭрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ:
<?php $ffi = FFI::cdef(" typedef struct _GtkApplication GtkApplication; typedef struct _GtkWidget GtkWidget; typedef void (*GCallback)(void*,void*); int g_application_run (GtkApplication *app, int argc, char **argv); unsigned long * g_signal_connect_data (void *ptr, const char *signal, GCallback handler, void *data, GCallback *destroy, int flags); void g_object_unref (void *ptr); GtkApplication * gtk_application_new (const char *app_id, int flags); GtkWidget * gtk_application_window_new (GtkApplication *app); void gtk_window_set_title (GtkWidget *win, const char *title); void gtk_window_set_default_size (GtkWidget *win, int width, int height); void gtk_widget_show_all (GtkWidget *win); ", "libgtk-3.so.0"); ...
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрди рд╕реА-рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдЬреАрдЯреАрдХреЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдПрдЪ-рдлрд╛рдЗрд▓реЛрдВ рд╕реЗ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓рдЧрднрдЧ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рддред
рд╕реА рдФрд░ рдкреАрдПрдЪрдкреА рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдлрд╛рдЗрд▓ рдореЗрдВ рд╣рд╕реНрддрдХреНрд╖реЗрдк рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдкреВрд░реЗ рд╕реА-рдХреЛрдб рдХреЛ рдПрдХ рдЕрд▓рдЧ рдлрд╛рдЗрд▓ рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, gtk-ffi.h рдирд╛рдо рдХреЗ рд╕рд╛рде рдФрд░ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЬреЛрдбрд╝реЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдбрд┐рдлрд╛рдЗрди'рдУрд╡ рдХрд╛ рдПрдХ рдЬреЛрдбрд╝рд╛ рдЬреЛ рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдирд╛рдо рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ:
#define FFI_SCOPE "GTK" #define FFI_LIB "libgtk-3.so.0"
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдордиреЗ рд╕реА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдкреВрд░реЗ рд╡рд┐рд╡рд░рдг рдХреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЪреБрдирд╛ред рдпрд╣ gtk-ffi.h рд▓рдЧрднрдЧ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣реИ, рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╣рдордиреЗ рдЕрднреА рддрдХ рд╕реА рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдореИрдХреНрд░реЛрдЬрд╝ рдФрд░ рд╢рд╛рдорд┐рд▓ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред
рдЕрдм рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ PHP рдореЗрдВ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ:
<?php final class GTK { static private $ffi = null; public static function create_window($title) { if (is_null(self::$ffi)) self::$ffi = FFI::load(__DIR__ . "/gtk_ffi.h"); $app = self::$ffi->gtk_application_new("org.gtk.example", 0); self::$ffi->g_signal_connect_data($app, "activate", function($app, $data) use ($title) { $window = self::$ffi->gtk_application_window_new($app); self::$ffi->gtk_window_set_title($window, $title); self::$ffi->gtk_window_set_default_size($window, 200, 200); self::$ffi->gtk_widget_show_all($window); }, NULL, NULL, 0); self::$ffi->g_application_run($app, 0, NULL); self::$ffi->g_object_unref($app); } }
рдЪреВрдВрдХрд┐ рдПрдлрдПрдлрдЖрдИ рдПрдХ рдЦрддрд░рдирд╛рдХ рддрдХрдиреАрдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рдХрд┐рд╕реА рдХреЗ рд╣рд╛рде рдореЗрдВ рдирд╣реАрдВ рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЖрдЗрдП рдХрдо рд╕реЗ рдХрдо рдПрдлрдПрдлрдЖрдИ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЫрд┐рдкрд╛рдПрдВ, рдЕрд░реНрдерд╛рдд, рдЗрд╕реЗ рдХрдХреНрд╖рд╛ рдХреЗ рдЕрдВрджрд░ рдирд┐рдЬреА рдмрдирд╛рдПрдВред рдФрд░ рд╣рдо
FFI::cdef
рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реБрдП рдПрдХ FFI рдСрдмреНрдЬреЗрдХреНрдЯ
FFI::cdef
, рд▓реЗрдХрд┐рди
FFI::load
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЬреЛ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд╕рд┐рд░реНрдл рд╣рдорд╛рд░реА рдПрдЪ-рдлрд╛рдЗрд▓ рдХреЛ рдкрдврд╝рддрд╛ рд╣реИред
рдмрд╛рдХреА рдХреЛрдб рдореЗрдВ рдмрд╣реБрдд рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рдХреЗрд╡рд▓ рдПрдХ рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдордиреЗ рдПрдХ рдЕрдирд╛рдо рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдФрд░ рд▓реЗрдХреНрд╕рд┐рдВрдЧ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╢реАрд░реНрд╖рдХ рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ред рдпрд╣реА рд╣реИ, рд╣рдо рд╕реА рдФрд░ рдкреАрдПрдЪрдкреА рдХреА рддрд╛рдХрдд рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╕реА рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВред
рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдЕрдЧрд░ рдпрд╣
рдХреЗрд╡рд▓ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЗ рдЕрдВрджрд░ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдкрд░ gtk_ffi.h рдлрд╝рд╛рдЗрд▓ рдкрдврд╝реА рдЬрд╛рдПрдЧреА, рдПрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрдирд╛рдИ рдЬрд╛рдПрдЧреА рдФрд░ рдЙрд╕реЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреА рдЬрд╛рдПрдЧреА ... рдФрд░ рдпрд╣ рд╕рдм рджреЛрд╣рд░рд╛рдП рдЧрдП рдХрд╛рд░реНрдп рдЖрдкрдХреЗ рд╕рд░реНрд╡рд░ рдХреЛ рд▓реЛрдб рдХрд░реЗрдВрдЧреЗред
рдЗрд╕рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, PHP рдореЗрдВ PHP рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ, рд╣рдордиреЗ рдПрдлрдПрдлрдЖрдИ рдХреЛ рдкреНрд░реА рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдкрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рдПрдлрдПрдлрдЖрдИ + рдкреНрд░реАрд▓реЛрдбрд┐рдВрдЧ
рдХреЛрдб рдореЗрдВ рдмрд╣реБрдд рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рдХреЗрд╡рд▓ рдЕрдм рд╣рдо рдкреНрд░реА-
FFI::load
рд▓рд┐рдП рдПрдЪ-рдлрд╛рдЗрд▓ рджреЗрддреЗ рд╣реИрдВ, рдФрд░ рд╣рдо
FFI::load
рд╕реАрдзреЗ
FFI::load
рдХреЗ рд╕рдордп рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рди рдХрд┐ рдЬрдм рд╣рдо рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВред рдпрд╣реА рд╣реИ, рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд▓реЛрдб рдХрд░рдирд╛, рд╕рднреА рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдФрд░ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдПрдХ рдмрд╛рд░ (рдЬрдм рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ) рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░
FFI::scope("GTK")
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдо рдЕрдкрдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдирд╛рдо рд╕реЗ рдкреНрд░реАрд▓реЛрдбреЗрдб рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред
<?php FFI::load(__DIR__ . "/gtk_ffi.h"); final class GTK { static private $ffi = null; public static function create_window($title) { if (is_null(self::$ffi)) self::$ffi = FFI::scope("GTK"); $app = self::$ffi->gtk_application_new("org.gtk.example", 0); self::$ffi->g_signal_connect_data($app, "activate", function($app, $data) use ($title) { $window = self::$ffi->gtk_application_window_new($app); self::$ffi->gtk_window_set_title($window, $title); self::$ffi->gtk_window_set_default_size($window, 200, 200); self::$ffi->gtk_widget_show_all($window); }, NULL, NULL, 0); self::$ffi->g_application_run($app, 0, NULL); self::$ffi->g_object_unref($app); } }
рдЗрд╕ рдЕрд╡рддрд╛рд░ рдореЗрдВ, рдПрдлрдПрдлрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡реЗрдм рд╕рд░реНрд╡рд░ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдпрд╣ рдЬреАрдпреВрдЖрдИ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмрдирд╛рдП рдЧрдП рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реАрдзреЗ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
$ php -d opcache.preload=gtk.php -r 'GTK::create_window(" !");'
FFI рдХреНрд░реЙрд╕рдмреНрд░реАрдбрд┐рдВрдЧ рдФрд░ рдкреНрд░реАрд▓реЛрдбрд┐рдВрдЧ рдХрд╛ рдПрдХ рдФрд░ рдкреНрд▓рд╕ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрддрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП FFI рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред рдЖрдк ffi.enable = preload рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реЛрдЧрд╛ рдХрд┐ рд╣рдо рдкреНрд░реАрд▓реЛрдбреЗрдб рдлрд╝рд╛рдЗрд▓реЛрдВ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдирд┐рдпрдорд┐рдд PHP рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ FFI рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рд╣реИред
рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕реА
рдПрдлрдПрдлрдЖрдИ рдХреА рдПрдХ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдореВрд▓ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЖрдк рдХрд┐рд╕реА рднреА рд╕рдордп рд╕реА рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕реНрдореГрддрд┐ рдореЗрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
<?php $points = FFI::new("struct {int x,y;} [100]"); for ($x = 0; $x < count($points); $x++) { $points[$x]->x = $x; $points[$x]->y = $x * $x; } var_dump($points[25]->y);
100 ( FFI::new != new FFI), integer. , C. PHP, . count, / foreach . 800 , PHP PHP' , 10 .
FFI:
Python/CFFI : (Cario, JpegTran), (ffmpeg), (LibreOfficeKit), (SDL) (TensorFlow).
, FFI .- PHP. , , callback' , . FFI. , . FFI c JIT, , LuaJIT, . , , .
for ($k=0; $k<1000; $k++) { for ($i=$n-1; $i>=0; $i--) { $Y[$i] += $X[$i]; } }
FFI .
: Zeev Surasky (Zend), Andi Gutmans (ex-Zend, Amazon), Xinchen Hui (ex-Weibo, ex-Zend, Lianjia), Nikita Popov (JetBrains), Anatol Belsky (Microsoft), Anthony Ferrara (ex-Google, Lingo Live), Joe Watkins, Mohammad Reza Haghighat (Intel) Intel, Andy Wingo (JS hacker, Igalia), Mike Pall ( LuaJIT)., ,
.
PHP Russia 2020 ! telegram- , 2019 youtube- , , тАФ .