Yii рдореЗрдВ рдлреНрд░рдВрдЯрдПрдВрдб / рдмреИрдХреЗрдВрдб рднрд╛рдЧреЛрдВ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛

рдореИрдВ рдХрд┐рд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдБ?


рдореИрдВ рдЕрдкрдиреА рд╕рднреА Yii рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕рд╛рдЗрдЯ рдХреЗ рдлреНрд░рдВрдЯ-рдПрдВрдб / рдмреИрдХ-рдПрдВрдб рднрд╛рдЧреЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝реА рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореИрдВ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рд▓реЗрдЦрдХ рд╣реЛрдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛, рдореИрдВ рдмрд╕ рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рдФрд░ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реИ рдФрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рджрд░рдЕрд╕рд▓, рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗрд╡рд▓ рдПрдХ рджреГрд╢реНрдпрдкрдЯрд▓ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреА рд╣реИ (рдЬреЛ рдХрд┐ рдЖрдЧрдВрддреБрдХ рджреЗрдЦрддрд╛ рд╣реИ)ред рд╕рднреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдШрдЯрдХреЛрдВ (рдореЙрдбрд▓, рдПрдХреНрд╕рдЯреЗрдВрд╢рди, рдЖрджрд┐) рдХреЗ рд▓рд┐рдП рджрд░реНрдж рд░рд╣рд┐рдд рдкрд╣реБрдВрдЪ рд╣реЛрдиреЗ рдкрд░, рдЕрдХреНрд╕рд░ рдкреНрд░рд╢рд╛рд╕рдирд┐рдХ рднрд╛рдЧ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИред

рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВред рдореИрдВ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдКрдВрдЧрд╛, рдпрджрд┐ рдЖрдк рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк yiiframework.com рдордВрдЪ рдЦреЛрдЬ рд╕рдХрддреЗ рд╣реИрдВ ред
рд╕рдмрд╕реЗ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╡рд┐рдХрд▓реНрдк рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ "рд╡реНрдпрд╡рд╣рд╛рд░" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрд╣ рдЖрдкрдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдмрд╣реБрдд рдЖрд╕рд╛рдиреА рд╕реЗ рднреЗрдж рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд╕рд╛рдЗрдЯ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЖрджрд┐ред


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

рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛


рдкрд╣рд▓реЗ, рдЪрд▓реЛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдкрд░ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВред рдмрддрд╛ рджреЗрдВ рдХрд┐ рд╕рд╛рдЗрдЯ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рднрд╛рдЧ (рдлреНрд░рдВрдЯрдПрдВрдб) рдХреЗ рдирд┐рдпрдВрддреНрд░рдХ "рд╕рдВрд░рдХреНрд╖рд┐рдд / рдирд┐рдпрдВрддреНрд░рдХ / рдлреНрд░рдВрдЯреЗрдВрдб" рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдпрд╣ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИ рдХрд┐ рд╣рдо рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЛ "рд╕рдВрд░рдХреНрд╖рд┐рдд / рдирд┐рдпрдВрддреНрд░рдХ / рдмреИрдХреЗрдВрдб" рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВрдЧреЗред
рдореИрдкрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдмрд╛рддред рдлреНрд░рдВрдЯреЗрдВрдб рдХреЗ рд▓рд┐рдП, рдпрд╣ рдлрд╝реЛрд▓реНрдбрд░ "рд╕рдВрд░рдХреНрд╖рд┐рдд / рд╡рд┐рдЪрд╛рд░ / рджреГрд╢реНрдпрдкрдЯрд▓" рд╣реИ , рдмреИрдХрдПрдВрдб рдХреЗ рд▓рд┐рдП, рдпрд╣ "рд╕рдВрд░рдХреНрд╖рд┐рдд / рд╡рд┐рдЪрд╛рд░ / рдмреИрдХрдПрдВрдб" рд╣реИ ред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
рдЫрд╡рд┐

рдирд┐рдпрдВрддреНрд░рдХреЛрдВ


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

рдЗрди рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:

FrontEndController.php:
class FrontEndController extends BaseController { //  public $layout = 'application'; //  public $menu = array(); //  public $breadcrumbs = array(); } 


BackEndController.php:
 class BackEndController extends BaseController { //  public $layout = 'application'; //  public $menu = array(); //  public $breadcrumbs = array(); /*  */ public function filters() { return array( 'accessControl', ); } /*   */ public function accessRules() { return array( //     array( 'allow', 'roles'=>array('admin'), ), //         array( 'allow', 'actions'=>array('login'), 'users'=>array('?'), ), //    array( 'deny', 'users'=>array('*'), ), ); } } 


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

рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдмреЗрд╕рдХрдВрдЯреНрд░реЛрд▓рд░ рдореЗрдВ, рдореИрдВ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╢реЙрд░реНрдЯрдХрдЯ рдмрдирд╛рддрд╛ рд╣реВрдВ, рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдХреНрд╕рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

BaseController.php:
 class BaseController extends CController { // -  public function setNotice($message) { return Yii::app()->user->setFlash('notice', $message); } // -  public function setError($message) { return Yii::app()->user->setFlash('error', $message); } } 


рдареАрдХ рд╣реИ, рддреЛ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИ - рд╕рднреА рдирд┐рдпрдВрддреНрд░рдХ рдЬреЛ "рд╕рдВрд░рдХреНрд╖рд┐рдд / рдирд┐рдпрдВрддреНрд░рдХ / рдмреИрдХреЗрдВрдб" рдореЗрдВ рд╣реИрдВ, рдмреИрдХрдПрдВрдбрдХрдВрдЯреНрд░реЛрд▓рд░ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░рддреЗ рд╣реИрдВ ред "рд╕рдВрд░рдХреНрд╖рд┐рдд / рдирд┐рдпрдВрддреНрд░рдХ / рдлреНрд░рдВрдЯреЗрдВрдб" рдореЗрдВ рд╡реЗ рдлреНрд░рдВрдЯрдПрдВрдб рдХрдВрдЯреНрд░реЛрд▓рд░ рд╣реИрдВред

рд╡реНрдпрд╡рд╣рд╛рд░


рдЕрдм рдореИрдВ рдЖрдкрдХреЛ рд╕реАрдзреЗ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдпрд╣ рд╕рдм рдХреИрд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо "рд╕рдВрд░рдХреНрд╖рд┐рдд / рд╡реНрдпрд╡рд╣рд╛рд░" рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдПрдХ рдирдпрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдмрдирд╛рддреЗ рд╣реИрдВ - WebApplicationEndBehavior ред рдЗрд╕рдХрд╛ рдХреЛрдб рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ, рд╕реАрдзрд╛ред рд▓реЗрдХрд┐рди рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдореИрдВ рд╕рдордЭрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдФрд░ рдХреНрдпреЛрдВред

WebApplicationEndBehavior.php
 class WebApplicationEndBehavior extends CBehavior { //      private $_endName; //  $_endName; public function getEndName() { return $this->_endName; } //   public function runEnd($name) { $this->_endName = $name; //     $this->onModuleCreate = array($this, 'changeModulePaths'); $this->onModuleCreate(new CEvent ($this->owner)); $this->owner->run(); } //   onModuleCreate public function onModuleCreate($event) { $this->raiseEvent('onModuleCreate', $event); } //     protected function changeModulePaths($event) { //     (frontend  backend)  ,         $event->sender->controllerPath .= DIRECTORY_SEPARATOR.$this->_endName; $event->sender->viewPath .= DIRECTORY_SEPARATOR.$this->_endName; } } 


рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред RunEnd ($ рдирд╛рдо) рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рд╕рд╛рдЗрдЯ рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде (рдлреНрд░рдВрдЯреЗрдВрдб / рдмреИрдХрдПрдВрдб) onModuleCreate рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рджреНрд╡рд╛рд░рд╛ рд▓рдЯрдХрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ , рдлрд┐рд░ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рд╣рдо рдХрдВрдЯреНрд░реЛрд▓рд░ рдФрд░ рдореИрдкрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкрде рдмрджрд▓рддреЗ рд╣реИрдВ, "рдкреНрд░рддреНрдпрдп" рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реБрдП рд╣рдореЗрдВ рд╡рд╣рд╛рдВ рдЬрд╝рд░реВрд░рдд рд╣реЛрддреА рд╣реИред
рдпрд╣ рдХреЗрд╡рд▓ рдЗрд╕ рдШрдЯрдХ рдХреЛ рдЙрд╕ рдкрде рдкрд░ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛рдПрдВ рд▓рдЧреЗрдВрдЧреАред
"рд╕рдВрд░рдХреНрд╖рд┐рдд / config / main.php" рдореЗрдВ:
 ... //    'behaviors'=>array( 'runEnd'=>array( 'class'=>'application.behaviors.WebApplicationEndBehavior', ), ), ... 


рд╡рд┐рдиреНрдпрд╛рд╕


рдпрд╣ рди рдХреЗрд╡рд▓ рдлрд╝реЛрд▓реНрдбрд░ рд╕реНрдерд╛рди рд╕реНрддрд░ рдкрд░, рдмрд▓реНрдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реНрддрд░ рдкрд░ рднреА рд╕рд╛рдЗрдЯ рдХреЗ рд╣рдорд╛рд░реЗ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, "рд╕рдВрд░рдХреНрд╖рд┐рдд / рдХреЙрдиреНрдлрд╝рд┐рдЧрд░" рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрдирд╛рдПрдВ - рдмреИрдХрдПрдВрдб.рдкреАрдкреА рдФрд░ рдлреНрд░рдВрдЯрдПрдВрдб ред рдПрдлрдкреА ред
рд╡реЗ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреЗ рд╣реИрдВ:
backend.php
 return CMap::mergeArray( require_once(dirname(__FILE__).'/main.php'), array( //   'defaultController' => 'posts', //  'components'=>array( //  'user'=>array( 'loginUrl'=>array('/users/login'), ), // mailer 'mailer'=>array( 'pathViews' => 'application.views.backend.email', 'pathLayouts' => 'application.views.email.backend.layouts' ), ), ) ); 


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

рдмреВрдЯрд╕реНрдЯреНрд░реИрдк


рдЕрдм рд╣рдореЗрдВ рдмрд╕ рдЕрдкрдиреА рдЗрдирдкреБрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реИред рдпрд╣рд╛рдВ рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд░реВрдЯ рдореЗрдВ рджреЛ рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛рддрд╛ рд╣реВрдВ - index.php рдФрд░ admin.php ред рдЙрдирдХреЗ рдкрд╛рд╕ рдореМрдЬреВрдж рдХреЛрдб рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

index.php
 //        $yii = dirname(__FILE__).'/../yii/framework/yii.php'; $config = dirname(__FILE__).'/protected/config/frontend.php'; //  ? defined('YII_DEBUG') or define('YII_DEBUG', true); defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL', 3); //   require_once($yii); //      WebApplicaitonEndBehavior,  ,     Yii::createWebApplication($config)->runEnd('frontend'); 


admin.php
 //        $yii = dirname(__FILE__).'/../yii/framework/yii.php'; $config = dirname(__FILE__).'/protected/config/backend.php'; //  ? defined('YII_DEBUG') or define('YII_DEBUG', true); defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL', 3); //   require_once($yii); //      WebApplicaitonEndBehavior,  ,     Yii::createWebApplication($config)->runEnd('backend'); 


рдпрд╣реА рд╣реИ, рдЕрдм http: //localhost/yourapp/index.php (рдпрд╛ рдЬреЛ рдХреБрдЫ рднреА рдЖрдк рд╣реИрдВ) рдХреА рдУрд░ рдореБрдбрд╝рддреЗ рд╣реБрдП - рдЖрдкрдХреЛ рд╕рд╛рдЗрдЯ рдХреЗ рд╕рд╛рдордиреЗ рд╡рд╛рд▓реЗ рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, http: //localhost/yourapp/nmin.php рдкрд░ рдЬрд╛рдХрд░ - рдЖрд╡реЗрджрди рдкреНрд░рд╢рд╛рд╕рдирд┐рдХ рднрд╛рдЧ рдХреЛ рд▓реЛрдб рдХрд░реЗрдЧрд╛ред

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

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

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, Yii рдПрдХ рдмрд╛рдЬ рдкрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореЗрд░реЗ рд▓рд┐рдП рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ - рдпрд╣ php рдЪреМрдЦрдЯреЗ рдХреЗ рдмреАрдЪ рд╕реНрдкрд╖реНрдЯ рд╕рдВрдЦреНрдпрд╛ 1 рд╣реИред рддреЛ рдЕрдЧрд░ рдЖрдк Yii рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦреЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ - рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕рдВрдХреЗрдд рджреЗрдВред

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


All Articles