PHP: рдЙрдиреНрдирдд рджреНрд░рд╡ рдЗрдВрдЯрд░рдлрд╝реЗрд╕

рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЖрдкрдореЗрдВ рд╕реЗ рдХрдИ рд▓реЛрдЧ рдЬреЛ рдЗрд╕ рдкрд╛рда рдХреЛ рдкрдврд╝рддреЗ рд╣реИрдВ, рд╡реЗ рджреНрд░рд╡ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВред рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдЖрдкрдиреЗ рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реБрдирд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдЗрд╕реЗ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рддреЛ рдпрд╣ рд╕рдм рдХреНрдпрд╛ рд╣реИ?

<?php class Images { public $width; public $height; public function SetWidth($value) { $this->width = $with; return $this; } public function SetHeight($value) { $this->height = $value; return $this; } } $images = new Images(); $images->SetWidth(100)->SetHeight(100); ?> 


рдпрд╣рд╛рдБ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИред рд╣рдо рдХреНрд░рдордмрджреНрдз рд░реВрдк рд╕реЗ, рдХреНрд░рд┐рдпрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдорд╛рди рд╕рд┐рджреНрдзрд╛рдВрдд рд▓реЛрдХрдкреНрд░рд┐рдп jQuery рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдХреНрдпрд╛ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ, рд╕рднреА рдЖрдзреБрдирд┐рдХ рд░реВрдкрд░реЗрдЦрд╛ рд╕рдорд╛рди рдбрд┐рдЬрд╛рдЗрдиреЛрдВ рдХреЗ рд╕рд╛рде рд▓рд╛рдЬрд┐рдореА рд╣реИред рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рдкреВрд░реА рд╕рд╛рдЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рди рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ?


рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐


рдлрд┐рд░ рдореИрдВ рдмрдбрд╝рд╛ рд╡рд┐рд╖рдпрд╛рдВрддрд░ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рд╡рд╛рдкрд╕ рдЬрд╛рдУред рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпреЛрдВ? рдареАрдХ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдорд╛рдирдХ рдореЙрдбрд▓ рдФрд░ рд╕рд┐рджреНрдз рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╣реЛрдиреЗ рдкрд░ рдмрд╛рдЗрдХ рдХреЗ рд╕рд╛рде рдХреНрдпреЛрдВ рдЖрддреЗ рд╣реИрдВред рдореИрдВ рдПрдорд╡реАрд╕реА рдореЙрдбрд▓ рдкрд░рд┐рд╡рд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред MVC рдХреНрдпреЛрдВ рдЦрд░рд╛рдм рд╣реИ?

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

рдЫрд╡рд┐

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

mysite.ru/section=2&task=index


рдпрд╣ рдПрдХ рдХреНрд▓рд╛рд╕рд┐рдХ, рд╕рд╛рдорд╛рдиреНрдп рддрдВрддреНрд░ рд╣реИред рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдЕрдиреБрднрд╛рдЧ рдХреЛ рдкрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ рдХрд╛рд░реНрдпред рдпрд╣рд╛рдБ рдПрдХ рдФрд░ рддрд╕реНрд╡реАрд░ рд╣реИред рдирдЬрд╝рд░

рдЫрд╡рд┐

рдпрд╣рд╛рдВ рд╕рд╛рдЗрдЯ рдХреА рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрдкрд╛рджрди рдлрд╝реЙрд░реНрдо рд╣реИред рдпрд╣рд╛рдБ рд╕рд╛рдЗрдЯ рдХреЗ рдЗрд╕ рдкреГрд╖реНрда рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд░реЛрдз рд╣реИ

mysite.ru/section=2&task=edit


рд╕рдм рдареАрдХ рд╣реИ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╣реИред рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднреА рдЖрд╕рд╛рди рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕рд▓рд┐рдП

 <?php class Site { public function Section($value) { return new MyController(); } } class MyController extends GeneralController { public function Index() { return new Table(); } public function Edit() { return new Form(); } } $site = new Site(); $section = $_GET["section"]; $task = $_GET["task"]; $site->Section($section)->$task(); ?> 


рд╕рд╛рдЗрдЯ рд╡рд░реНрдЧ рд╡рд╛рдВрдЫрд┐рдд рдЕрдиреБрднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдХ рд▓реМрдЯрд╛рддрд╛ рд╣реИред MyController рдЕрдиреБрднрд╛рдЧ рдирд┐рдпрдВрддреНрд░рдХ рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рддрд╛ рд╣реИред

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

рдЫрд╡рд┐

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

рдЙрд╕реА рддрд░рд╣ рдЬрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА MVC рд╕реНрдХреАрдо рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рд╣рдореЗрдВ рдПрдХ рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рдХрд┐рд╕ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреГрд╖реНрда рдХреЛ рдмрджрд▓рдирд╛ рд╣реИред рдЗрд╕реЗ рд╣рд┐рд╕реНрд╕рд╛ рдХрд╣рд╛ рдЬрд╛рдПред рддрдм рдкреНрд░рд╢реНрди рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:

mysite.ru?section=2&part=tree&task=expand
mysite.ru?section=2&part=form&task=delete


рдФрд░ рдЯреНрд░реА рд╕реЗрдХреНрд╢рди рдореЗрдВ рдЯреВрд▓рдмрд╛рд░ рдХреА рдУрд░ рдХреИрд╕реЗ рдореБрдбрд╝реЗрдВ? рдпрд╛ рд╕рд╛рдордЧреНрд░реА рдЯреИрдм рдореЗрдВ рдЯреВрд▓рдмрд╛рд░ рдХреЗ рд▓рд┐рдП? рдПрдХ рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░ рджрд░реНрдЬ рдХрд░реЗрдВ? рдореГрдд рдЕрдВрдд

рдирд┐рдХрд╛рд╕



рдФрд░ рдлрд┐рд░ рд╕реЗ рддрд╕реНрд╡реАрд░ред

рдЫрд╡рд┐

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

 <?php class Members { public function Teachers() { return new Teachers(); } public function Students() { return new Students(); } } class Teachers { public function Teacher($number) { return new Teacher($number); } } class Students { public function Group($number) { return new Group($number); } } class Group { public function Student($number) { return new Student($number); } } class Teacher { public function Show() { } } class Student { public function Show() { } } ?> 


рдЕрдм, рдЫрд╛рддреНрд░ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рдореНрди рд╢реНрд░рдВрдЦрд▓рд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛

Members::Students()->Group(123)->Student(327)->Show();


рдЖрдЗрдП рдЗрд╕ рдкреНрд░рд╢реНрди рдХреЛ рджреЛрд╣рд░рд╛рддреЗ рд╣реИрдВ, рд╡рд╣ рдкреНрд░рд╢реНрди рдЬреЛ рд╣рдореЗрдВ рдкрд┐рдЫрд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдореЗрдВ рдПрдХ рдореГрдд рдЕрдВрдд рддрдХ рд▓реЗ рдЧрдпрд╛ред рдФрд░ рдЯреНрд░реА рд╕реЗрдХреНрд╢рди рдореЗрдВ рдЯреВрд▓рдмрд╛рд░ рдХреА рдУрд░ рдХреИрд╕реЗ рдореБрдбрд╝реЗрдВ?

рд╣рдо рдЬрд╡рд╛рдм рджреЗрддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣

Members::Students()->Group(123)->Student(327)->Tree()->Toolbar()->Add();


рд╕реНрдЯреВрдбреЗрдВрдЯ рдХреНрд▓рд╛рд╕ рдЦреБрдж рдХреЗ рднреАрддрд░ рдПрдХ рд╣реА рдХреЙрд▓ рдХреЛ рдЪреЗрди рд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╕реАрдзреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдХрд╣реЗрдВ, рдПрдХ рдЫрд╛рддреНрд░ рд╡рд░реНрдЧ рдореЗрдВ рдПрдХ рдлреЙрд░реНрдо, рдлреЙрд░реНрдо () рд╡рд┐рдзрд┐, рдЯреНрд░реА () - рдПрдХ рдкреЗрдбрд╝, рдФрд░ рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдпрд╣ рдПрдХ рд▓реЗрдЧреЛ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреА рддрд░рд╣ рд╣реИред рд╣рдо рдЬреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рд╣рдо рдЙрд╕реЗ рдЧрдврд╝рддреЗ рд╣реИрдВ, рд░рдЪрдирд╛ рдХрд░рддреЗ рд╣реИрдВ!

рдЦрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдорд┐рдард╛рдИ



рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЙрдиреНрдирдд рджреНрд░рд╡ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреА рдЙрдкрд░реЛрдХреНрдд рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдпреЛрдЬрдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХ рдХреНрд╡реЗрд░реА рд╢реНрд░реГрдВрдЦрд▓рд╛, рдПрдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрддреЗ рдореЗрдВ рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛, рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИред
рдпрджрд┐ рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд .htaccess рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]


рд╕рд╛рдЗрдЯ рдХреЗ рд╕рднреА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ index.php рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рдореЗрдВ рдЖрдкрдХреЗ рдЬреИрд╕реЗ рд▓рд┐рдВрдХ рд╣реЛрдВрдЧреЗ

mysite.ru/control/members/students/group=123/student=321/show


рдЖрджреЗрд╢реЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреЗ рд╣реИрдВ

Application::Control()->Members()->Students()->Group(123)->Student(431)->Show();


рдЖрдк рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

 <?php class Application { public function __construct() { if (!$this->request = $this->Request()) { $this->errors[] = ERROR_PARAM_GET; } } public function Init() { if (!is_object(self::$instance)) { self::$instance = new self(); } return self::$instance; } public function Request() { if (!$uri = explode("/", $_SERVER["REQUEST_URI"])) { return false; } else { foreach ($uri as $item) { if (strpos($item, "=")) { $key = substr($item, 0, strpos($item, "=")); $value = substr($item, strpos($item, "=")+1); } else { $key = $item; $value = null; } if (!empty($item)) { $result[] = array( "key" => $key, "value" => isset($value) ? $value : null ); } } } return $result; } function Run() { if (isset($this->errors)) { foreach ($this->errors as $error) { echo $error; } } else { $root = $this; /** *    *    ,   */ foreach ($this->request as $element) { if (is_object($root) && method_exists($root, $element["key"])) { $root = $root->{$element["key"]}(@$element["value"]); } else { return $this->Welcome()->Show(); } } } } } Application::Init()->Run(); ?> 


рдкреБрдирд╢реНрдЪ: рдкреНрд░рд┐рдп рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВред рджрд┐рдП рдЧрдП рдХреЛрдб рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдЪреЗрдХ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдЗрд╕рд▓рд┐рдП рдЬреИрд╕рд╛ рдХрд┐ рдХрд╛рд░реНрдпрд╢реАрд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡реЗ рдХреЗрд╡рд▓ рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред

рд╕рдВрджрд░реНрдн


рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдХреЛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ gomockingbird.com/mockingbird рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд┐рд╕рдореЗрдВ рдореИрдВрдиреЗ рд╕рд╛рдЗрдЯ рдЖрд░реЗрдЦреЛрдВ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд┐рдпрд╛ред

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


All Articles