рдФрд░ рдлрд┐рд░ рд╕реЗ рдПрдо.рд╡реА.рд╕реА.

рд╣рд╛рдмреНрд░реЛ-рд╕рдореБрджрд╛рдп рдХреЛ рдирдорд╕реНрдХрд╛рд░ред

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

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореИрдВрдиреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рджреЛрд╖реЛрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдФрд░ рд╣рдмреНрд░реЛрдЬрд╝рд┐рдЯреЗрд▓рдореА рдХреЗ рд╕рд╛рде рдкрд░рд┐рдгрд╛рдо рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред

рддреЛ рдХреНрдпрд╛ рд╕реБрдзрд╛рд░ рд╣реБрдЖ рд╣реИ?

1. рд░рдЬрд┐рд╕реНрдЯреНрд░реА рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдПрдВред рдЕрдЧрд░ PHP5 рдореЗрдВ __set рдФрд░ __get рдЬреИрд╕реЗ рдЕрджреНрднреБрдд рддрд░реАрдХреЗ рд╣реИрдВ рддреЛ рд╣рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?

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

3. рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреНрд▓рд╛рд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдиреЗрд╕реНрдЯреЗрдб рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝реА рдЧрдИ рд╣реИред рдЕрдм рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

<? php

рдХрдХреНрд╖рд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ {

рдирд┐рдЬреА $ var = array ( ) ;

рдлрд╝рдВрдХреНрд╢рди __set ( $ varname , $ рдореВрд▓реНрдп ) {
$ рдпрд╣ -> vars [ $ varname ] = $ рдореВрд▓реНрдп ;
рд╕рдЪ рд▓реМрдЯрдирд╛ ;
}

рдлрд╝рдВрдХреНрд╢рди рд╢реЛ ( $ рдирд╛рдо , $ рдбреЗрдЯрд╛ = рдЧрд▓рдд , $ рдкреНрд░рджрд░реНрд╢рди = рд╕рддреНрдп ) {
$ рдкрде = рд╕рд╛рдЗрдЯ_рдкрде ред 'рд╡рд┐рдЪрд╛рд░' ред DIRSEP ред $ рдирд╛рдо ред '.php' ;

рдЕрдЧрд░ ( file_exists ( $ рдкрде ) ) {
рдЯреНрд░рд┐рдЧрд░_рд░реЛрд░ ( 'рдЯреЗрдореНрдкреНрд▓реЗрдЯ `` $ рдирд╛рдо ред ' 'рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред' , E_USER_NOTICE ) ;
рдЭреВрдареЗ рд▓реМрдЯрдирд╛ ;
}

рдЕрдЧрд░ ( $ рдбреЗрдЯрд╛ ) {
// рдбреЗрдЯрд╛ рд╕реЗ рднрд░реЗрдВ
рдЕрдЧрд░ ( is_array ( $ рдбреЗрдЯрд╛ ) ) {
foreach ( $ рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ $ рдбреЗрдЯрд╛ => $ рдореВрд▓реНрдп ) {
$ рдпрд╣ -> __set ( $ рдХреБрдВрдЬреА , $ рдореВрд▓реНрдп ) ;
}
}
}

рдирд┐рдХрд╛рд▓рдиреЗ ( $ рдпрд╣ -> vars ) ;

рдЕрдЧрд░ ( $ рдкреНрд░рджрд░реНрд╢рди ) {
рд╢рд╛рдорд┐рд▓ ( $ рдкрде ) ;
} {
рдЕрдЧрд░ ( is_file ( $ path ) ) {
ob_start ( ) ;
$ рдкрде рд╢рд╛рдорд┐рд▓ рд╣реИрдВ ;
$ рд╕рд╛рдордЧреНрд░реА = ob_get_contents ( ) ;
ob_end_clean ( ) ;
$ рд╕рд╛рдордЧреНрд░реА рд▓реМрдЯрд╛рдПрдВ ;
}
рдЭреВрдареЗ рд▓реМрдЯрдирд╛ ;
}
}
}

?>


4. рд░рд╛рдЙрдЯрд░ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, URL рдореЗрдВ рдХрдИ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рд░рд╛рдЙрдЯрд░ рдЕрднреА рднреА рдХрдорд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╣реИ, рдЬрд┐рд╕реЗ рдореИрдВ рд╕рдордп рдХреЗ рд╕рд╛рде рдЦрддреНрдо рдХрд░ рджреВрдВрдЧрд╛ред рд▓реЗрдХрд┐рди рдЬрдм рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ :)

<? php

рдХреНрд▓рд╛рд╕ рд░рд╛рдЙрдЯрд░ {

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ $ рдкрде ;
рдирд┐рдЬреА $ args = array ( ) ;

рдлрд╝рдВрдХреНрд╢рди рд╕реЗрдЯрдкреИрде ( $ рдкрде ) {
$ рдкрде = рдЯреНрд░рд┐рдо ( $ рдкрде , '/ \\' ) ;
$ рдкрде ред = рдбреАрдЖрдИрдЖрд░рдПрд╕рдИрдкреА ;

рдЕрдЧрд░ ( is_dir ( $ path ) ) {
рдирдпрд╛ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХреЗрдВ ( 'рдЕрдорд╛рдиреНрдп рдирд┐рдпрдВрддреНрд░рдХ рдкрде: ``' ред $ рдкрде ред '' ' ) ;
}
$ рдпрд╣ -> рдкрде = $ рдкрде ;
}

рд╕рдорд╛рд░реЛрд╣ рдкреНрд░рддрд┐рдирд┐рдзрд┐ ( ) {
// рдЕрдирд╛рджрд┐ рдкрде
$ рдпрд╣ -> getController ( $ рдлрд╝рд╛рдЗрд▓ , $ рдирд┐рдпрдВрддреНрд░рдХ , $ рдХрд╛рд░реНрд░рд╡рд╛рдИ , $ args ) ;
// рдлрд╛рдЗрд▓ рдЙрдкрд▓рдмреНрдз рд╣реИ?
рдЕрдЧрд░ ( is_readable ( $ рдлрд╝рд╛рдЗрд▓ ) ) {
trig_error ( 'рдлрд╝рд╛рдЗрд▓ `` ред $ рдлрд╝рд╛рдЗрд▓ ред ' 'рдирд╣реАрдВ рдорд┐рд▓реА' , E_USER_ERROR ) ;
}
рд╢рд╛рдорд┐рд▓ ( $ рдлрд╝рд╛рдЗрд▓ ) ;

// рдирд┐рдпрдВрддреНрд░рдХ рдмрдирд╛рдПрдБ
$ рд╡рд░реНрдЧ = 'рдирд┐рдпрдВрддреНрд░рдХ_' ред $ рдирд┐рдпрдВрддреНрд░рдХ ;
$ рдирд┐рдпрдВрддреНрд░рдХ = рдирдпрд╛ $ рд╡рд░реНрдЧ ( ) ;

// рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╡рд╕реНрддреБ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ?
рдЕрдЧрд░ ( is_callable ( рд╕рд░рдгреА ( $ рдирд┐рдпрдВрддреНрд░рдХ , $ рдХреНрд░рд┐рдпрд╛ ) ) ) {}
рдЯреНрд░рд┐рдЧрд░_рд░реЛрд░ ( 'рдиреЛ рдореЗрдердб `` $ рдПрдХреНрд╢рди ред ' 'рдХреНрд▓рд╛рд╕ рдореЗрдВ рдкрд╛рдпрд╛ рдЧрдпрд╛' , E_USER_ERROR ) ;
}
// рдХреЙрд▓ рдПрдХреНрд╢рди
call_user_func_array ( рд╕рд░рдгреА ( $ рдирд┐рдпрдВрддреНрд░рдХ , $ рдХрд╛рд░реНрд░рд╡рд╛рдИ ) , $ args ) ;
}

рдирд┐рдЬреА рдлрд╝рдВрдХреНрд╢рди getController ( & $ рдлрд╝рд╛рдЗрд▓ , рдФрд░ $ рдирд┐рдпрдВрддреНрд░рдХ , рдФрд░ $ рдХрд╛рд░реНрд░рд╡рд╛рдИ , рдФрд░ $ args ) {}
$ рдорд╛рд░реНрдЧ = ( рд░рд┐рдХреНрдд ( $ _GET [ 'рдорд╛рд░реНрдЧ' ) ) ) ? 'рд╕реВрдЪрдХрд╛рдВрдХ' : $ _GET [ 'рдорд╛рд░реНрдЧ' ] ;
// рд╡рд┐рднрд╛рдЬрди рдЬрд┐рд╕реЗ url рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ
$ рдорд╛рд░реНрдЧ = рдЯреНрд░рд┐рдо ( $ рдорд╛рд░реНрдЧ , '/ \\' ) ;
$ рднрд╛рдЧреЛрдВ = рд╡рд┐рд╕реНрдлреЛрдЯ ( '/' , $ рдорд╛рд░реНрдЧ ) ;

// рд╕рд╣реА рдирд┐рдпрдВрддреНрд░рдХ рдЦреЛрдЬреЗрдВ
$ cmd_path = $ рдпрд╣ -> рдкрде ;

// рд╕реЗрдЯ рдбрд┐рдлреЙрд▓реНрдЯ рдХрдВрдЯреНрд░реЛрд▓рд░ рдирд╛рдо (рдпрджрд┐ рджреВрд╕рд░рд╛ рдорд┐рд▓ рдЬрд╛рдП рддреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛)
$ рдирд┐рдпрдВрддреНрд░рдХ = 'рд╕реВрдЪрдХрд╛рдВрдХ' ;

foreach ( $ рднрд╛рдЧреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ $ рднрд╛рдЧреЛрдВ ) {
$ рдлреБрд▓рдкреИрде = $ cmd_path ред $ рд╣рд┐рд╕реНрд╕рд╛ ;
// рджрд┐рд░ рд╣реИ?
рдЕрдЧрд░ ( is_dir ( $ fullpath ) ) {
$ cmd_path ред = $ рд╣рд┐рд╕реНрд╕рд╛ ред DIRSEP ;
array_shift ( $ рднрд╛рдЧреЛрдВ ) ;
рдЬрд╛рд░реА рд░рдЦреЗрдВ ;
}

// рдлрд╛рдЗрд▓ рд╣реИ?
рдЕрдЧрд░ ( is_file ( $ рдлреБрд▓рдкреИрде ред '.php' ) ) {
$ рдирд┐рдпрдВрддреНрд░рдХ = $ рд╣рд┐рд╕реНрд╕рд╛ ;
array_shift ( $ рднрд╛рдЧреЛрдВ ) ;
рддреЛрдбрд╝рдирд╛ ;
}
}

// рдХрдВрдЯреНрд░реЛрд▓рд░ рдореЗрдВ рдПрдХреНрд╢рди рд╡рд┐рдзрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
$ рдХрд╛рд░реНрд░рд╡рд╛рдИ = ( isset ( $ рднрд╛рдЧреЛрдВ [ 0 ] ) && ! is_numeric ( $ рднрд╛рдЧреЛрдВ [ 0 ] ) ) ? array_shift ( $ рднрд╛рдЧреЛрдВ ) : 'рд╕реВрдЪрдХрд╛рдВрдХ' ;
$ рдлрд╝рд╛рдЗрд▓ = $ cmd_path ред $ рдирд┐рдпрдВрддреНрд░рдХ ред '.php' ;
$ args = $ рднрд╛рдЧреЛрдВ ;
}
}
?>


5. рд▓реЛрдбрд░ рд╡рд░реНрдЧ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдореЙрдбрд▓ (рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд), рдкреБрд╕реНрддрдХрд╛рд▓рдп (рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд) рд▓реЛрдб рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рд╡рд╣рд╛рдБ рдФрд░ рд╕рд╣рд╛рдпрдХреЛрдВ рдХреЗ рд▓реЛрдбрд┐рдВрдЧ рдореЗрдВ рдкреЗрдВрдЪ рд╣реИред

<? php

рдХрдХреНрд╖рд╛ рд▓реЛрдбрд░ {

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ $ рдЙрджрд╛рд╣рд░рдг ;
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ $ var = рд╕рд░рдгреА ( ) ;

рдлрд╝рдВрдХреНрд╢рди __construct ( $ рдкреИрд░реЗрдВрдЯ ) {
$ рдпрд╣ -> рдЙрджрд╛рд╣рд░рдг = $ рдорд╛рддрд╛-рдкрд┐рддрд╛ ;
}

рдлрд╝рдВрдХреНрд╢рди рдореЙрдбрд▓ ( $ model_name ) {
$ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо = strtolower ( $ model_name ) ред '.php' ;
$ рдлрд╝рд╛рдЗрд▓ = site_path ред 'рдореЙрдбрд▓' ред DIRSEP ред $ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо ;
рдЕрдЧрд░ ( file_exists ( $ рдлрд╝рд╛рдЗрд▓ ) ) {
рдЭреВрдареЗ рд▓реМрдЯрдирд╛ ;
}
рд╢рд╛рдорд┐рд▓ ( $ рдлрд╝рд╛рдЗрд▓ ) ;
$ рдпрд╣ -> рдЙрджрд╛рд╣рд░рдг -> $ model_name = рдирдпрд╛ $ model_name ( рдирдпрд╛ ActiveRecords ( ) ) ;
}

рд╕рдорд╛рд░реЛрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп ( $ рдирд╛рдо ) {
$ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо = рд╕реНрдЯреНрд░реЗрдЯреЛрд▓реЙрд╡рд░ ( $ рдирд╛рдо ) ред '.php' ;
$ рдлрд╝рд╛рдЗрд▓ = site_path ред 'рдкреБрд╕реНрддрдХрд╛рд▓рдп' ред DIRSEP ред $ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо ;
рдЕрдЧрд░ ( file_exists ( $ рдлрд╝рд╛рдЗрд▓ ) ) {
рдЭреВрдареЗ рд▓реМрдЯрдирд╛ ;
}
рд╢рд╛рдорд┐рд▓ ( $ рдлрд╝рд╛рдЗрд▓ ) ;
$ рдпрд╣ -> рдЙрджрд╛рд╣рд░рдг -> $ рдирд╛рдо = рдирдпрд╛ $ рдирд╛рдо ( рдирдП ActiveRecords ( ) ) ;
}
}

?>


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

рд╕реНрд╡рдпрдВ рдореЙрдбрд▓ рдХрд╛ рдЖрдзрд╛рд░ рд╡рд░реНрдЧ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рднреА рдмрд╛рдж рд╡рд╛рд▓реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реЗ рд╣реИрдВ, рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

<? php

рдХреНрд▓рд╛рд╕ рдореЙрдбрд▓ {

var $ db ;

рдлрд╝рдВрдХреНрд╢рди __construct ( $ db ) {
$ рдпрд╣ -> рдбреАрдмреА = $ рдбреАрдмреА ;
}
}

?>


6. рдЙрдкрд░реЛрдХреНрдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛ рдЖрдзрд╛рд░ рд╡рд░реНрдЧ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рд╕рднреА рдмрд╛рдж рдХреЗ рдирд┐рдпрдВрддреНрд░рдХ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реЗ рд╣реИрдВ, рдЕрдм рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

<? php

рдХреНрд▓рд╛рд╕ рдХрдВрдЯреНрд░реЛрд▓рд░_рдмреЗрд╕ {

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ $ рдЯреЗрдореНрдкрд▓реЗрдЯ ;
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ $ рд▓реЛрдб ;

рдлрд╝рдВрдХреНрд╢рди __construct ( ) {
$ рдпрд╣ -> рдЯреЗрдореНрдкрд▓реЗрдЯ = рдирдпрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ ( ) ;
$ рдпрд╣ -> рд▓реЛрдб = рдирдпрд╛ рд▓реЛрдбрд░ ( $ рдпрд╣ ) ;
}

рдлрд╝рдВрдХреНрд╢рди __set ( $ varname , $ рдореВрд▓реНрдп ) {
$ рдпрд╣ -> $ varname = $ рдореВрд▓реНрдп ;
рд╕рдЪ рд▓реМрдЯрдирд╛ ;
}
}

?>


рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкреНрд░рддреНрдпреЗрдХ рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ, рд▓реЛрдбрд░ рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрдХреНрд╖рд╛рдПрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рдФрд░ рд╣рдо рдХреЛрдб рдореЗрдВ рд╕рдорд╛рди рдЪреАрдЬреЗрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:

$ рдпрд╣ -> рд▓реЛрдб -> рдореЙрдбрд▓ ( 'рд▓рд┐рдВрдХ' ) ;
$ рдпрд╣ -> рд▓рд┐рдВрдХ -> рдЬреЛрдбрд╝ ( ' рдирдпрд╛ ' ) ;


рдпрд╣реА рд╣реИ, рдореЙрдбрд▓ рдХреЗ рд╕рднреА рддрд░реАрдХреЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ:

$ рдпрд╣ -> [ рдореЙрдбрд▓ рдирд╛рдо ] -> [ рдореЙрдбрд▓ рдореЗрдВ рд╡рд┐рдзрд┐ рдХрд╛ рдирд╛рдо ]


7. рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЫреЛрдЯреЗ рдмрджрд▓рд╛рд╡ рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВ - рд╕рддреНрд░ рдХреА рд╢реБрд░реБрдЖрдд (рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдореИрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд╕рддреНрд░ рдЬреЛрдбрд╝рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ), рдЕрдХреНрд╕рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЛ __autoload рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ:

рдлрд╝рдВрдХреНрд╢рди рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд ( $ url )
{
рд╣реЗрдбрд░ ( "рд╕реНрдерд╛рди:" ред $ Url ) ;
}


рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде (рдпрд╣рд╛рдБ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ, рд╢рд╛рдпрдж рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдПрдХреНрдЯрд┐рд╡ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдорддрд▓рдм рд╣реИ?)

8. рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рд╣рдорд╛рд░реА рдореБрдЦреНрдп index.php рдлрд╝рд╛рдЗрд▓, рдЬреЛ рд╕рднреА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреА рд╣реИред рдЕрдм рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

<? php

рдЖрд╡рд╢реНрдпрдХрддрд╛ 'рд╢рд╛рдорд┐рд▓ / start.php' ;
$ рд░рд╛рдЙрдЯрд░ = рдирдпрд╛ рд░рд╛рдЙрдЯрд░ ( ) ;
$ рд░рд╛рдЙрдЯрд░ -> рд╕реЗрдЯрдкрд╛рде ( рд╕рд╛рдЗрдЯ_рдкреИрде ред 'рдХрдВрдЯреНрд░реЛрд▓рд░' ) ;
$ рд░рд╛рдЙрдЯрд░ -> рдбреЗрд▓реАрдЧреЗрдЯ ( ) ;

?>


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

рдореБрдЭреЗ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ, рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдФрд░ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдкрд░ рдЦреБрд╢реА рд╣реЛрдЧреАред

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

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


All Articles