рдИрдЬрд╝реАрд╡реЗрдм рдПрдХ рд╕рд╛рдорд╛рдиреНрдп-рдЙрджреНрджреЗрд╢реНрдп рд╡рд╛рд▓рд╛ рдбреЗрд╕реНрдХрдЯреЙрдк рдЗрдВрдЬрди рд╣реИ рдЬрд┐рд╕реЗ PHP рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ HTTP рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП XML рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ XSLT рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдФрд░ рдЗрдВрдЬрди рд╕реНрд╡рдпрдВ рд╡реЗрдм рдкрд░ рдореБрдЦреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ: рдХреНрд╡реЗрд░реА рд░реВрдЯрд┐рдВрдЧ, рдПрдХреНрд╕реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓, рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реАрдХреЛрдВ рдХрд╛ рдкреГрдердХреНрдХрд░рдг рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ, рд╕реНрдерд╛рдиреАрдпрдХрд░рдг, PHP рд╣реЗрд▓реНрдкрд░ рдХрдХреНрд╖рд╛рдПрдВ рдФрд░ рд╕реБрд╡рд┐рдзрд╛ рд╕реБрд╡рд┐рдзрд╛рдПрдВ, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡рд╛рд╕реНрддреБ рдФрд░ рд╡реИрдЪрд╛рд░рд┐рдХ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИ рдЬреЛ рд╡реЗрдм рдХреЗ рд▓рд┐рдП рдЫрд╣ рд╕реЗ рд╕рд╛рдд рд╡рд░реНрд╖реЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдкрд░ рд╕рдВрдЪрд┐рдд рд╣реИред
рд╡рд░реНрдЧреАрдХрд░рдг рдХреА рдмрд╛рдд рдХрд░реЗрдВ рддреЛ рдИрдЬрд╝реАрд╡реЗрдм рд╢рд╛рдпрдж рдХрдВрдЯреЗрдВрдЯ рдореИрдиреЗрдЬрдореЗрдВрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╕рдорд╛рди рд╣реИред рдпрд╣ рдПрдХ рдЕрд░реНрде рдореЗрдВ, рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдИрдЬрд╝реАрд╡реЗрдм рдкрд░ рдирд┐рд░реНрдорд┐рдд рдЙрддреНрдкрд╛рдж рдХрд╛ рдереЛрдХ рдПрдХреНрд╕рдПрдордПрд▓ рддрдХрдиреАрдХ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕реА рд╕рдордп, рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╕реАрдПрдордПрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╣реИ - рдЗрд╕рдореЗрдВ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕, рддреИрдпрд╛рд░ рдкреГрд╖реНрда рдЯреЗрдореНрдкрд▓реЗрдЯ рдпрд╛ SQL рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИред
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдИрдЬрд╝реАрд╡реЗрдм рдкрд░ рдПрдХ рд╕рд╛рдЗрдЯ рдпрд╛ рдПрдХреНрд╕рдПрдордПрд▓ рд╕реЗрд╡рд╛ рдПрдХ рдПрдХреНрд╕рдПрдордПрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди, рдкреГрд╖реНрда рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдПрдХ рд╕реЗрдЯ, рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕, рдФрд░ POST рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИред рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдХреЛ рд╡реЗрдмрдорд╛рд╕реНрдЯрд░ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ рдЯреЗрдХреНрд╕реНрдЯ рдПрдбрд┐рдЯрд░ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ рдбреАрдмреАрдПрдордПрд╕ рдХрд╛ рдПрдбрдорд┐рди рдкреИрдирд▓ рднреАред Easyweb рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рд╢рд░реНрддреЗрдВ рдкреВрд░реА рдХреА рдЬрд╛рддреА рд╣реИрдВ:
- рдпрджрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЖрдк рдореМрдЬреВрджрд╛ рд╕реАрдПрдордПрд╕ рд╕реЗ рд╕рдВрддреБрд╖реНрдЯ рдирд╣реАрдВ рд╣реИрдВ;
- рдпрджрд┐ рдЖрдк рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЛ "рд╕рдм рдХреБрдЫ рдЦреБрдж рд▓рд┐рдЦрдиреЗ" рдХреА рдХреНрдпрд╛ рдЬрд╝рд░реВрд░рдд рд╣реИ;
- рдпрджрд┐ рдЖрдк рдореМрдЬреВрджрд╛ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рд╕реЗ рдбрд░рддреЗ рд╣реИрдВ;
- рдЕрдЧрд░ рдЖрдкрдХреЛ рдПрдХреНрд╕рдПрдЪрдЯреАрдПрдордПрд▓ рдкрд╕рдВрдж рд╣реИ, рд╕рд╛рде рд╣реА рдПрдХреНрд╕рдПрдордПрд▓ рддрдХрдиреАрдХ рдХрд╛ рдПрдХ рдЕрдиреБрдХреВрд▓ рдкрд░рд┐рд╡рд╛рд░ рднреА рд╣реИред
рдкреНрд░рд╛рдЧрд┐рддрд┐рд╣рд╛рд╕
рд╡реЗрдм рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рд╛рде рдореЗрд░рд╛ рдкрд░рд┐рдЪрдп рдХрд╛рдлреА рдорд╛рдирдХ рд░реВрдк рд╕реЗ рд╢реБрд░реВ рд╣реБрдЖ: рдореЗрд░реЗ рдХреАрдмреЛрд░реНрдб рдХреЗ рдиреАрдЪреЗ рд╕реЗ рдирд┐рдХрд▓рдиреЗ рд╡рд╛рд▓реА рд╕рд╛рдЗрдЯреЗрдВ HTML рд╕реЗ рдЧрдиреНрджреА рдереАрдВ, PHP рдЖрд╡реЗрд╖рдг рдХреЗ рд╕рд╛рде рдорд┐рд╢реНрд░рд┐рдд рд╣реЛрддреА рд╣реИрдВ рдФрд░ mysql_ * API рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рд╕реАрдзреА рдкрд╣реБрдБрдЪ рдмрдирд╛рддреА рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬрдм рд╕реЗ рдореИрдВ рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рд▓рдЧрд╛ рд╣реБрдЖ рд╣реВрдВ, рдХреЛрдбрд╛рдВрддрд░рдХ рд╕реЗ рд▓реЗрдХрд░ рдПрд╕рдХреНрдпреВрдПрд▓, рд╢реЗрдбреНрд╕ рдФрд░ рдПрд▓реЗрдХреНрдЬреЗрдВрдбреНрд░рд╛ рдЬреИрд╕реА рд╕реА ++ рддрдХ, рдореБрдЭреЗ рдЬрд▓реНрджреА рд╕реЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдХрд┐рд╕реА рдХреЛ рднреА рдЗрд╕ рддрд░рд╣ рдХреА рд╡реЗрдм рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рдереА рдФрд░ рдХреБрдЫ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рдереАред рдмрд╣реБрдд рдХрдо рд╕рдордп рдмреАрдд рдЧрдпрд╛, рдФрд░ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдорд┐рддреНрд░ рд╕реЗ рдПрдХреНрд╕рдПрд╕рдПрд▓рдЯреА рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦрд╛ред рдореИрдЯрд░рд┐рдпрд▓ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ: рдпрд╣рд╛рдБ рдпрд╣ рд╣реИ, рдореЗрд░реЗ рд╕рдкрдиреЛрдВ рдХреА рддрдХрдиреАрдХ! рд╣рд╛рд▓рд╛рдВрдХрд┐, XSLT рд╕рд┐рд░реНрдл рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рд╣реИ, рдЬрдмрдХрд┐ рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рддрдп рдХрд┐рдпрд╛ рдХрд┐ рдореБрдЭреЗ рдПрдХ рдкреВрд░реНрдг рдЗрдВрдЬрди рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЙрд╕рдХреЗ рдмрд╛рдж, рдИрдЬрд╝реАрд╡реЗрдм рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рджреГрд╢реНрдп рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣реБрдЖ: рдореИрдВрдиреЗ рдЗрдВрдЬрди рдХреЛ рд▓рд┐рдЦрд╛ рдФрд░ рдЗрд╕реЗ рддрдм рддрдХ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрдм рддрдХ рдХрд┐ рдирдП рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рджреНрд░рд╡реНрдпрдорд╛рди рдЬрдорд╛ рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ (рдЖрдорддреМрд░ рдкрд░ рдЗрд╕рдореЗрдВ рдПрдХ рд╕рд╛рд▓ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ), рдлрд┐рд░ рдЗрд╕реЗ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдФрд░ рдЦрд░реЛрдВрдЪ рд╕реЗ рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рд▓рд┐рдЦрд╛, рдЬрд┐рд╕рдореЗрдВ рдкрд┐рдЫрд▓реЗ рдИрдЬрд╝реАрд╡реЗрдм рдкреБрдирд░реНрдЬрдиреНрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЗ рджреМрд░рд╛рди рдЬреЛ рдХреБрдЫ рднреА рдЬрдорд╛ рд╣реБрдЖ рдерд╛ рдФрд░ рджрд░реНрджрдирд╛рдХ рд╣реЛ рдЧрдпрд╛ рдерд╛, рдЙрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред
рддреАрд╕рд░реЗ рдФрд░ рдЪреМрдереЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмреАрдЪ, рдореЗрд░реЗ рдкрд╛рд╕ рддрдХрдиреАрдХреА рдЧреИрдЧреНрд╕ рдХреА рдПрдХ рдкреВрд░реА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдереА, рдЬрд┐рд╕рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдореИрдВрдиреЗ рдИрдЬрд╝реАрд╡реЗрдм рдХреЗ рдЪреМрдереЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рднрд╛рд╖рд╛ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд╕реЛрдЪрд╛ рдерд╛ред рдПрдХ рдпрд╛ рджреВрд╕рд░реЗ рдбрд┐рдЧреНрд░реА рдкрд░, C ++, Java, Scala, Ruby, Perl, Erlang рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ Microsoft рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЙрдирдХреЗ .NET рдФрд░ рдЕрдиреНрдп IIS рдореЗрдВ рдХреБрдЫ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдП рдЧрдП рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡рд┐рднрд┐рдиреНрди рдХреЛрдгреЛрдВ рд╕реЗ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдЫрд╣ рдорд╣реАрдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рдХреЗ рдмрд╛рдж, рдЕрдВрдд рдореЗрдВ рд╣рдо PHP рдХреЗ рднреАрддрд░ рд╕рднреА рдмрд╛рдзрд╛рдУрдВ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗред рд╣реБрд░реНрд░реЗ, рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛!
рдЗрдВрдЬрди рдХреЗ рдЪреМрдереЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реБрдП, рдореИрдВ рдЗрд╕ рдирддреАрдЬреЗ рдкрд░ рдкрд╣реБрдВрдЪрд╛ рдХрд┐ рдореИрдВ рд╡реЗрдм рдкрд░ рд╕рдВрдкреВрд░реНрдг рд╡рд┐рдХрд╛рд╕ рдЕрд╡рдзрд┐ рдХреЗ рджреМрд░рд╛рди рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╕рднреА рдкреНрд░рдореБрдЦ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛, рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдХрд┐ рдИрдЬрд╝реАрд╡реЗрдм рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкрдХрд╛ рд╣реБрдЖ рдерд╛ред
рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐
рдЗрдВрдЬрди рдХрд╛ рдЪреМрдерд╛ рд╕рдВрд╕реНрдХрд░рдг рдЕрднреА рднреА рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕реНрддрд░ рдкрд░ рд╣реИ рдФрд░ рд╕рдордп-рд╕рдордп рдкрд░ рдХреБрдЫ рдЫреЛрдЯреА рдЪреАрдЬреЛрдВ рдХреЛ рд╕рд╣реА рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИ рдХрд┐ рдкрд╣рд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг, рдЬрд┐рд╕реЗ рд╕реНрдерд┐рд░ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╡рд░реНрд╖ рдХреЗ рдЕрдВрдд рд╕реЗ рдкрд╣рд▓реЗ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред
рдкреНрд░рд▓реЗрдЦрди рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрднреА рддрдХ рдПрдХ рджреЗрд╢реА рд╡рдХреНрддрд╛ рджреНрд╡рд╛рд░рд╛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореЗрд░реЗ рд░рд┐рдпрд╛рдЬрд╝ рд▓рд╣рдЬреЗ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рд╣рдБрд╕рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рди рдХрд░реЗрдВред
рдмрд┐рдВрджреБ рдкрд░ рдкрд╣реБрдБрдЪреЛ
рдореИрдВ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╡рд┐рд╕реНрддреГрдд рджрд╕реНрддрд╛рд╡реЗрдЬ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ GitHub рдкрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╡рд┐рдХреА рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд╣реИред рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдореИрдВ рдиреНрдпреВрдирддрдо рдмрддрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдЖрдкрдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдИрдЬрд╝реЗрдм рдЖрдкрдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдФрд░ рдЖрдк рдЗрд╕рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдпрд╛ рдпрджрд┐ рдЖрдк рдЙрди рддрдХрдиреАрдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╣рдЬ рд╣реИрдВ рдЬреЛ рдЖрдк рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдЖрдкрдХреЛ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдИрдЬрд╝реАрд╡реЗрдм рдПрдХ рдЗрдВрдЬрди рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХреЛ рдЦреБрдж рд╕рдм рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣ рд╕рдм рд╣реИ: рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░реЗрдВ, рдПрд╕рдХреНрдпреВрдПрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ рд▓рд┐рдЦреЗрдВ, рдПрдХреНрд╕рдПрдЪрдЯреАрдПрдордПрд▓ рдмрд┐рдЫрд╛рдПрдБ, рд╕реАрдПрд╕рдПрд╕ рд╢реИрд▓рд┐рдпреЛрдВ, рдЬрд╛рд╡рд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕, рд╕рд╛рде рд╣реА рд╕рд╛рде рдкреЛрд╕реНрдЯ рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рд╣реИрдВрдбрд▓рд░реНрд╕ рднреА рд▓рд┐рдЦреЗрдВред Easyweb рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдФрд░ рдЕрд░реНрде рдЖрдкрдХреЛ рдпрд╣ "рд╕рдм рдХреБрдЫ" рд╕рд░рд▓, рдХреЙрдореНрдкреИрдХреНрдЯ, рдкрдардиреАрдп, рд╕рд╣рдЬ, рд╕реБрд░рдХреНрд╖рд┐рдд рдФрд░ рдПрдХ рджрд░реНрдЬрди рдЕрдиреНрдп рд╕реБрдВрджрд░ рдмреЛрд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдИрдЬрд╝реАрд╡реЗрдм рдкрд░ рдмрдирд╛рдИ рдЧрдИ рдПрдХ рд╕рд╛рдЗрдЯ рдореЗрдВ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕, рдПрдХ рдПрдХреНрд╕рдПрдордПрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди, рдкреЗрдЬ рдЯреЗрдореНрдкреНрд▓реЗрдЯ, рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдФрд░ рдкреЛрд╕реНрдЯ рдЕрдиреБрд░реЛрдз рд╣реИрдВрдбрд▓рд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рд╣рдо рдЗрди рд╕рдВрд╕реНрдерд╛рдУрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВрдЧреЗ, рдФрд░ XML рдФрд░ PHP рд╕реНрдирд┐рдкреЗрдЯ рдХреЗ рдЙрджрд╛рд╣рд░рдг рджреЗрдВрдЧреЗред
рдбреЗрдЯрд╛рдмреЗрд╕
рдИрдЬрд╝реАрд╡реЗрдм рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдкрд░ рдХреЛрдИ рдкреНрд░рддрд┐рдмрдВрдз рдирд╣реАрдВ рд▓рдЧрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдЕрдЪреНрдЫреЗ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдЗрд╕рдХреЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП: рдЪрд╛рдмрд┐рдпрд╛рдБ, рдЕрдиреБрдХреНрд░рдорд┐рдд, рд╡рд┐рджреЗрд╢реА рдкреНрд░рдореБрдЦ рдмрд╛рдзрд╛рдПрдВ, рдЯреНрд░рд┐рдЧрд░, рд╡рд┐рдЪрд╛рд░, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рд╣рдо рдЦреЛрд▓рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, phpMyAdmin, рдФрд░ - рдЖрдЧреЗред
XML рд╡рд┐рдиреНрдпрд╛рд╕
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдЗрдЯ рдкрд░ рдХреМрди рд╕реЗ рдкреГрд╖реНрда рд╣реИрдВ, рдХреМрди рд╕реЗ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИрдВ (рдФрд░ рд╡реЗ рдХреИрд╕реЗ рджрд┐рдЦрддреА рд╣реИрдВ), рдФрд░ рдкреЗрдЬ, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЯреБрдХрдбрд╝реЗ рдХреЗ рдЕрдзрд┐рдХрд╛рд░ рдХреИрд╕реЗ рд╡рд┐рдирд┐рдпрдорд┐рдд рд╣реЛрддреЗ рд╣реИрдВред
рдкреЗрдЬ:
<page name="book" url="/book/(book_id -> natural)/"> <template src="/tpl/main.xsl" xml="book:info(book_id -> $book_id)"> <template name="head" src="/tpl/home/head.xsl" /> <template name="body" src="/tpl/home/body.xsl" /> </template> </page>
рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд:
<datasource name="library" type="postgresql" server="192.168.10.230" username="guest" password="mZrCe3qlj92H" database="library" charset="UNICODE" />
рдкреНрд░рдХреНрд░рд┐рдпрд╛:
<procedure name="book:list" datasource="library" root="books" item="book" empty="true"> <param name="author_id" type="natural" /> select id, title, description from book where author_id = $author_id; </procedure>
рд╕рдореВрд╣ рд╕рджрд╕реНрдпрддрд╛:
<group name="editor"> <param name="account_id" type="natural" /> account:type(account_id -> $account_id) = 'editor' </group>
рд╕рдорд╛рдзрд╛рди:
<permission name="book:edit"> <param name="account_id" type="natural" /> <param name="book_id" type="natural" /> editor(account_id -> $account_id) and public(book_id -> $book_id) </permission>
рдкреЗрдЬ рдЯреЗрдореНрдкрд▓реЗрдЯ
рд╕рднреА рдкреЗрдЬ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдПрдХреНрд╕рдПрд╕рдПрд▓-рд╡реИрдз рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдЕрдВрджрд░ рдкреЗрдЬ рдорд╛рдирдХ XSL рдФрд░ XPath рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЯрд╛рдЗрдкрд╕реЗрдЯ, рд╕рд╛рде рд╣реА рдЗрдВрдЬрди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╣реИрдВред Easyweb рдПрдХреНрд╕рдЯреЗрдВрд╢рди www рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИрдВред рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд░реВрдЯ рдкреИрдЯрд░реНрди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:
<?xml version="1.0" encoding="utf-8" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:php="http://php.net/xsl" xmlns:www="https://github.com/nyan-cat/easyweb" exclude-result-prefixes="xi php www"> <xsl:template match="/"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <xi:include href="head.xml" /> <www:template name="head" /> </head> <body> <www:xslt xsl="/xsl/menu.xsl" xml="/xml/menu.xml" /> <www:template name="body" /> <footer> <xsl:value-of select="www:local('footer')" /> </footer> </body> </html> </xsl:template> </xsl:stylesheet>
рдореЗрдиреВ рдХреЗ рд▓реЗрдЖрдЙрдЯ рдХрд╛ рдЙрджрд╛рд╣рд░рдг (рдКрдкрд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ menu.xsl):
<?xml version="1.0" encoding="utf-8" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:php="http://php.net/xsl" xmlns:www="https://github.com/nyan-cat/easyweb" exclude-result-prefixes="php www"> <xsl:template match="menu"> <xsl:for-each select="item"> <a href="{@href}"> <xsl:value-of select="www:local(@name)" /> </a><xsl:if test="position() != last()"> | </xsl:if> </xsl:for-each> </xsl:template> </xsl:stylesheet>
рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдкреБрд╕реНрддрдХреЛрдВ рдХреА рд╕реВрдЪреА рдХрд╛ рд▓реЗрдЖрдЙрдЯред XSL рдЯреЗрдореНрдкрд▓реЗрдЯ рдПрдХ рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ:
<www:xslt xsl="/xsl/book-list.xsl" xml="book:list(author_id -> $author_id)" />
рд╡рд░реНрддрдорд╛рди рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рддреБрд░рдВрдд рдкреНрд░рднрд╛рд╡:
<xsl:for-each select="www:query('book:list', 'author_id -> $author_id')/books/book"> <h3><xsl:value-of select="title" /></h3> <xsl:copy-of select="description" /> </xsl:for-each>
рд╕реНрдерд╛рдиреАрдпрдХрд░рдг
Easyweb рдмрд╣реБрднрд╛рд╖реА рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рдЧреНрд░рдВрдереЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рд╛рд░реВрдк рдХреА XML рдлрд╝рд╛рдЗрд▓ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдРрд╕реА рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:
<?xml version="1.0" encoding="utf-8" ?> <local> <home> <title> <en>Chinese Cuisine</en> <ru> </ru> <zh>ф╕нхЫ╜шПЬ</zh> </title> <description> <en> Welcome to Nannan Zhang personal website about chinese cuisine. Feel free to contact me at <a href="mailto:nannan@zhang.com">nannan@zhang.com</a>. </en> <ru> , . <a href="mailto:nannan@zhang.com">nannan@zhang.com</a>. </ru> <zh>хЕ│ф║Оф╕нх╝Пч╛ОщгЯя╝Мцмвш┐Ошо┐щЧох╝ахНЧхНЧф╕кф║║ч╜СчлЩуАВхЮВшпвщВочо▒я╝Ъ<a href="mailto:nannan@zhang.com">nannan@zhang.com</a> </zh> </description> </home> </local>
рдЗрд╕ XML рд╕реЗ рдбреЗрдЯрд╛ рдЕрдВрд╢реЛрдВ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡рд┐рд╢реЗрд╖ XPath рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЙрдкрдирд╛рдо рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреЛ рд╕рдВрдмрдВрдзрд┐рдд рдиреЛрдб рдХреЛ рдкрде рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕рд░рд▓реАрдХреГрдд рд░реВрдк рд╣реИрдВред XSL рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдЯреЗрдХреНрд╕реНрдЯ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:
<xsl:copy-of select="www:local('home:description')" />
рдкреЛрд╕реНрдЯ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдкреЗрдЬ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛:
<page name="book:edit:post" url="/book/edit/post/" action="/php/book-edit.php" permission="book:edit(account_id -> $session:account_id, book_id -> $post:id)" />
рдкреБрд╕реНрддрдХ рдХреА рд╕рд╛рдордЧреНрд░реА- edit.php:
<?php function action($www, $response) { $www->query('book:edit', array ( 'book_id' => post::hidden('id'), 'title' => post::text('title'), 'description' => post::textarea('description') )); $response->location('/book/' . post::hidden('id') . /); } ?>
POST рдЕрдиреБрд░реЛрдз рджреНрд╡рд╛рд░рд╛ рдЕрдкрд▓реЛрдб рдХреА рдЧрдИ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:
<?php function action($www, $response) { foreach(files::get('picture.+') as $file) { $image = image::load($file['name']); $scaled = $image->fit_to_width_copy(800); $image_id = $www->evaluate('image:create'); $scaled->save(fs::normalize('/images/pictures/' . $image_id)); } } ?>
рд╕рддреНрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ
рдЗрдВрдЬрди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ PHP рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ, рдПрдХ рд╕рддреНрд░ рд╡рд░реНрдЧ рд╣реИ рдЬрд┐рд╕реЗ рдПрдХ рд╕рддреНрд░ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдФрд░ рдЙрдирд╕реЗ рдЗрд╕реЗ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдИрдЬрд╝реАрд╡реЗрдм рдЖрдкрдХреЛ рдПрдХ рд╕рддреНрд░ рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдФрд░ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╕рдВрд╕реНрдерд╛рдУрдВ, рдЬреИрд╕реЗ рдХрд┐ рдЗрдВрдбреЗрдХреНрд╕ рдПрд░реЗ, рдПрд╕реЛрд╕рд┐рдПрдЯрд┐рд╡ рдПрд░реЗрдЬрд╝, рдИрдЬрд╝реАрд╡реЗрдм рдПрдХреНрд╕рдПрдордПрд▓ рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕, рд╕рд╛рде рд╣реА JSON рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдореЗрдВ рдХреНрд░рдордмрджреНрдз рдХрд┐рд╕реА рднреА PHP рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:
<?php session::start(); session::value('account_id', $account_id); var_dump( session::value('account_id') ); session::vector('numbers', array(1, 2, 3)); var_dump( session::vector('numbers') ); session::map('food', array('Apple' => 'Fruit', 'Potato' => 'Vegitable')); var_dump( session::map('food') ); $xml = xml::load('/xml/menu.xml'); session::xml('menu', $xml); var_dump( session::xml('menu') ); session::object('user', new user('Mark', user::type_editor, 35)); var_dump( session::object('user') ); ?>
рд╕рддреНрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╕рднреА рд╡рд╕реНрддреБрдПрдБ рдПрдХреНрд╕рдПрдордПрд▓ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкрдиреЗ рдПрдХреНрд╕рдПрд╕рдПрд▓ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рд╕реЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдПрдХреНрд╕рдкреАрде рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реБрд▓рдн рд╣реИрдВ:
<xsl:for-each select="www:session('xml', 'menu')/menu/item"> <a href="{@url}"><xsl:value-of select="@name" /></a> </xsl:for-each>
рддрдХрдиреАрдХреА рдореБрджреНрджреЗ
рдлрд┐рд▓рд╣рд╛рд▓, рдЗрдВрдЬрди PHP рд╡рд░реНрдЧ XSLTProcessor рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ, libxslt рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ XSLT 1.0 рдФрд░ XPath 1.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдЪреНрдЫреА рдЦрдмрд░ рдпрд╣ рд╣реИ рдХрд┐ рдорд╛рдирдХ рдПрд╕реЗрдВрдмрд▓реА рдореЗрдВ XSLTProcessor EXSLT рдХреЗ рдереЛрдХ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЬреИрд╕реЗ рд╣реА / рдЕрдЧрд░ XSLT / XPath 2.0 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдирдХ рдореЙрдбреНрдпреВрд▓ PHP рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рддреБрд░рдВрдд рдИрдЬрд╝реАрд╡реЗрдм рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
PHP PDO рдХрд╛ рдЙрдкрдпреЛрдЧ DBMS рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП API рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ, Easyweb 12 рдкреНрд░рдХрд╛рд░ рдХреЗ DBMS (
http://php.net/manual/ru/pdo.drivers.php ) рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп DBMS рдХреЗ рд▓рд┐рдП рднреА рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдПрдХ PDO рдбреНрд░рд╛рдЗрд╡рд░ рд╣реЛрдиреЗ (рдмрд╕ DBMS рдирд╛рдо рдФрд░ рдЙрд╕рдХреЗ PDO рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рд╕рдмрдорд┐рдЯ рдХрд░реЗрдВ)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдИрдЬрд╝реАрд╡реЗрдм рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдиреНрдп рдбреАрдмреАрдПрдордПрд╕ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдЗрдВрдЬрди рдХрд╛ рд▓реЗрдЦрдХ, рдЬреЛ рд╣реИ, рдореЗрд░реЗ рд▓рд┐рдП) рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдкреАрдбреАрдУ рдбреНрд░рд╛рдЗрд╡рд░ рдирд╣реАрдВ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЛрдВрдЧреЛрдбреАрдмреА), рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИред
рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдХреЛрдИ рдЕрдХрд╛рджрдорд┐рдХ-рд╡рд┐рд╕реНрддреГрдд рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХреЗрд╡рд▓ рджреГрд╢реНрдп рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ, рдкрд┐рди рдХрд┐рдП рдЧрдП рд╕рдордп рдорд╛рдкрди рдФрд░ рдЕрдкрд╛рдЪреЗ рд▓реЙрдЧреНрд╕ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЛ htop рдкрд░ рдПрдХ рд╕рдорд╛рдирд╛рдВрддрд░ рдирдЬрд╝рд░ рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рддреЛ рдпрд╣рд╛рдБ рд╣реИ рдЬреЛ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ:
- рдЧреАрдерд╣рдм рдкрд░ рдПрдХ рдХреЗрд╕ рд╕реНрдЯрдбреА рд╕реЗ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЕрддрд┐рдерд┐ рдкреБрд╕реНрддрдХ, рдПрдХ рд╕рдВрджреЗрд╢ рдлрд╝реАрдб рд╡рд╛рд▓рд╛ рдПрдХ рдкреГрд╖реНрда рдПрдХ рд╕рд╕реНрддреА рд╡реАрдбреАрдПрд╕-рдХреЗ рдкрд░ 0.005 - 0.01 рд╕реЗрдХрдВрдб рдореЗрдВ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИред VDS рдХрд╛ рд╡рд┐рдиреНрдпрд╛рд╕, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдордЬрд╝рдмреВрддреА рд╕реЗ рдЕрдЬреНрдЮрд╛рдд рд╣реИ;
- рдмреБрд▓реЗрдЯрд┐рди рдмреЛрд░реНрдб рдХреА рд╕рд╛рдЗрдЯред рдПрдХ рд╕рдорд░реНрдкрд┐рдд рдЗрдВрдЯреЗрд▓ Xeon E3- рд╕реНрддрд░ рд╕рд░реНрд╡рд░ рдкреНрд░рддрд┐ рджрд┐рди рдЦреЛрдЬ рдмреЙрдЯреНрд╕ рд╕реЗ ~ 10 рдорд┐рд▓рд┐рдпрди рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рд▓реЗрддрд╛ рд╣реИ, рдФрд░ htop рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реБрдП, рд╕рд░реНрд╡рд░ рдореЗрдВ рдЕрднреА рднреА рдХрдИ рдмрд╛рд░ рдорд╛рд░реНрдЬрд┐рди рд╣реИ;
- рдЗрдВрдЬрди рдХреЗ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ "рдмреБрд▓реЗрдЯрд┐рди рдмреЛрд░реНрдб" рдкреНрд░рд╛рд░реВрдк рдХреА рдПрдХ рд╕рд╛рдЗрдЯ рдФрд░ рдЗрдВрдЯреЗрд▓ i7 рд╕реНрддрд░ рдХреЗ рдПрдХ рд╕рдорд░реНрдкрд┐рдд рд╕рд░реНрд╡рд░ рдиреЗ рдПрдХ рдмрд╛рд░ рдЖрдЧрдВрддреБрдХреЛрдВ рдХреЗ рддреВрдлрд╛рдиреА рдкреНрд░рд╡рд╛рд╣ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛, 15 рдорд┐рдирдЯ рдореЗрдВ рд▓рдЧрднрдЧ 5,000 - 10,000 рдЕрджреНрд╡рд┐рддреАрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ред рд╕рд╛рдЗрдЯ рдореЗрдВ рдХреЛрдИ рдордВрджреА рдирд╣реАрдВ рдереАред рдЗрд╕реА рд╕рдордп, рдЗрдВрдЬрди рдХрд╛ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рддреЗрдЬ рд╣реИред
рдЖрдЧреЗ рдХреА рдпреЛрдЬрдирд╛ рдФрд░ рд╡рд┐рдЪрд╛рд░
рдлрд┐рд▓рд╣рд╛рд▓, рдХреБрдЫ рдЕрдирд┐рд╢реНрдЪрд┐рдд рднрд╡рд┐рд╖реНрдп (рд╣рдорд╛рд░реЗ рдЦреБрдж рдХреЗ рд╡рд┐рдХрд╛рд╕, рдпрд╛ рдЗрд╕рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЪрдпрди рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг) рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмрдбрд╝реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИ:
- рд╡рд┐рднрд┐рдиреНрди DBMS рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ PDO рдбреНрд░рд╛рдЗрд╡рд░ рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдХреЛрдИ рдЪрд╛рд╣рддрд╛ рд╣реИ;
- рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдкреВрд░реНрдг рдПрд▓рдПрд▓ (1) рд╕реЗ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХрд╛ рдЕрдиреБрд╡рд╛рдж;
- ORM рдкреНрд░рдгрд╛рд▓реА рдпрд╛ рдЗрд╕рдХреА рд╕рдорд╛рдирддрд╛;
- рдкрд╣рд▓реВ рдЦреЛрдЬ;
- рдкреВрд░реНрдг рдкрд╛рда рдЦреЛрдЬ;
- рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд░реВрдкрд░реЗрдЦрд╛ (рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖ рдкрд░ AJAX рдпрд╛ WebSockets, рдФрд░ рд╢рд╛рдпрдж JSON-over-HTTP рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░)ред
рд╕рдВрджрд░реНрдн
рдИрдЬрд╝реАрд╡реЗрдм рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА:
github.com/nyan-cat/easywebрдкреНрд░рд▓реЗрдЦрди:
github.com/nyan-cat/easyweb/wikiрдЧреЗрд╕реНрдЯрдмреБрдХ рдХреЗрд╕ рд╕реНрдЯрдбреА:
github.com/nyan-cat/easybookрдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдореИрдВ рдЖрдкрдХреЗ рд╕рд╡рд╛рд▓реЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреВрдВрдЧрд╛ред