рд╕реНрд╡рдпрдВ рдХреЗ рд╕рд╛рде рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐

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



рдореИрдВ рдЦреБрдж рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ ...



рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЛ рд╡рд░реНрдЧ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ (рдирд┐рд░реНрдорд╛рддрд╛ рдХрд╛ рдирд╛рдо рдмрджрд▓рдирд╛ рднреВрд▓ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИ рдФрд░ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рддрд░рд╣ рдпрд╣ рдХреБрдЯрд┐рд▓ рд╣реИ)ред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, PHP5 рдиреЗ __construct рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдирд╛рдо рдкреЗрд╢ рдХрд┐рдпрд╛

рд╡рд░реНрдЧ рдХреЗ рдПрдХ рдирдП рдЙрджрд╛рд╣рд░рдг рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдпрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдФрд░ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

рд╡рд░реНрдЧ Spadar_Core_Object

{

/ **

* рдПрдХ рд╡рд░реНрдЧ рдХрд╛ рдПрдХрд▓ рдЙрджрд╛рд╣рд░рдг

*

* @staticvar Spadar_Core_Object

* /

рдирд┐рдЬреА рд╕реНрдерд┐рд░ $ oInstance;



...



/ **

* рдПрдХ рд╡рд░реНрдЧ рдХрд╛ рдПрдХрд▓ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ (рд╕рд┐рдВрдЧрд▓рдЯрди рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди)

*

* рд╡рд╛рдкрд╕реА Spadar_Core_Object рд╕рд┐рдВрдЧрд▓рдЯрди рдЙрджрд╛рд╣рд░рдг

* /

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдерд┐рд░ рдлрд╝рдВрдХреНрд╢рди getInstance ()

{

рдЕрдЧрд░ (isset (рд╕реНрд╡ :: $ oInstance))

{

self :: $ oInstance = new self ();

}



рд╕реНрд╡ рд╡рд╛рдкрд╕ рдХрд░реЗрдВ :: $ oInstance;

}



...



}





рдЕрдм рдЖрдкрдХреЛ рдХрдХреНрд╖рд╛ рдХреЗ рдирд╛рдо рдХреА рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреА рдШреЛрд╖рдгрд╛ рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдлрд╛рдпрджрд╛ рдирд╣реАрдВ рд╣реИред

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



рд╡рд░реНрдЧ Spadar_Core_Object

{

/ **

* рд╡рд╛рд░рд┐рд╕ рд╡рд░реНрдЧреЛрдВ рдХреЗ рдПрдХрд▓ рдЙрджрд╛рд╣рд░рдг

*

* @staticvar рд╕рд░рдгреА

* /

рдирд┐рдЬреА рд╕реНрдерд┐рд░ $ aInstances = array () ;



...



/ **

* рд╡реНрдпреБрддреНрдкрдиреНрди рд╡рд░реНрдЧ рдХрд╛ рдПрдХрд▓ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ (рд╕рд┐рдВрдЧрд▓рдЯрди рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди)

*

* рд╡рд╛рдкрд╕реА Spadar_Core_Object рд╕рд┐рдВрдЧрд▓рдЯрди рдЙрджрд╛рд╣рд░рдг

* /

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдерд┐рд░ рдлрд╝рдВрдХреНрд╢рди getInstance ()

{

рдЕрдЧрд░ (isset ( рд╕реНрд╡ :: $ anstances [__ CLASS__] ))

{

рд╕реНрд╡рдпрдВ :: $ рдЖрднрд╛рд░ [__ CLASS__] = рдирдпрд╛ рдЖрддреНрдо ();

}



рд╕реНрд╡ рд╡рд╛рдкрд╕ рд▓реМрдЯреЗрдВ :: $ anInstances [__ CLASS__];

}



...



}





рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡рд┐рдХрд▓реНрдк рд╣реИ: рдирдП рд╕реНрд╡ рдХреЗ рдмрдЬрд╛рдп , рдЪрд░ $ sClassName = __CLASS__ рд╕реЗрдЯ рдХрд░реЗрдВ ; рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░реЗрдВ: рдирдпрд╛ $ sClassName ();



рдкреИрд░рд╛рдореАрдЯрд░ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ



PHP5 рдореЗрдВ, рдЖрдк рд╡рд┐рдзрд┐ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕реНрд╡рдпрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ



рд╡рд░реНрдЧ Spadar_Controller_Widget Spadar_Core_Object рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ

{

/ **

* рдмрдЪреНрдЪреЗ рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ

*

* var рд╕рд░рдгреА

* /

рд╕рдВрд░рдХреНрд╖рд┐рдд $ aChildWidgets = array ();

...



/ **

* рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рдПрдХ рдмрдЪреНрдЪрд╛ рдЬреЛрдбрд╝рдирд╛

*

* рдкрд░рдо Spadar_Controller_Widget $ oWidget рдирдП рдмрдЪреНрдЪреЗ

* рд╡рд╛рдкрд╕реА Spadar_Controller_Widget рдмрд╛рдж рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ

* /

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рдорд╛рд░реЛрд╣ addChild ( рд╕реНрд╡рдпрдВ $ oWidget )

{

$ рдпрд╣-> aChildWidgets [] = $ oWidget;



рдпрд╣ $ рд╡рд╛рдкрд╕ рдХрд░реЛ;

}



...



}





рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╡рд╕реНрддреБрдУрдВ рд╕реЗ рдПрдХ рдкреЗрдбрд╝ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдмрдЪреНрдЪреЗ рдХреЛ рдЙрд╕рдХреЗ рдмрдЪреНрдЪреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреНред рд╡реЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред



рдпрд╣ рдореИрдВ рд╣реВрдБ рдпрд╛ рдореИрдВ рдирд╣реАрдВ рд╣реВрдБ?



рдЖрдЗрдП PHP рдореЗрдВ рд╣рд╛рдЗрдкрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдХреБрдЫ рдкреИрдХреЗрдЬ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдХреНрд░рдорд╛рдВрдХрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдпрд╣ рдЬрд╛рдБрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рджрд┐рдП рдЧрдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ:



рд╡рд░реНрдЧ Spadar_Core_Object

{

...



/ **

* рд╡рд╕реНрддреБ рдкреНрд░рд╛рдкреНрддрд┐

*

* рдкрд░рдо рд╕реНрдЯреНрд░рд┐рдВрдЧ $ sInfo

* Spadar_Core_Object рдХреЛ рдмрд╛рдж рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ

* /

рдирд┐рдЬреА рд╕рдорд╛рд░реЛрд╣ parseObject ($ sInfo)

{

$ mInfo = $ sInfo;

$ mInfo = @unserialize ($ sInfo);



рдЕрдЧрд░ ( $ mInfo instof рд╕реНрд╡ )

{

рд╡рд╛рдкрд╕реА $ mInfo;

}



рдпрд╣ $ рд╡рд╛рдкрд╕ рдХрд░реЛ;

}



...



}





рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ ...





рдХреНрд▓рд╛рд╕ рдХрд╛рдВрд╕реНрдЯреЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХреЗрд╡рд▓ рддрд░реАрдХреЛрдВ рдХреЗ рд╢рд░реАрд░ рдХреЗ рдЕрдВрджрд░ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЙрдирдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рд╡рд┐рдХреГрдд рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:



рд╡рд░реНрдЧ Spadar_Controller_Url Spadar_Core_Object рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ

{

const PARSE_PROTOCOL = 'рдпреЛрдЬрдирд╛';

const PARSE_HOST = 'host';

...

const BROWSER_ARG_PROTOCOL = рд╕реНрд╡рдпрдВ :: PARSE_PROTOCOL;



/ **

* рдХреНрдпрд╛ рдпреВрдЖрд░рдПрд▓ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░

*

* URL рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП param string $ sParam рдкреИрд░рд╛рдореАрдЯрд░

* рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреИрд░рд╛рдореАрдЯрд░ рдорд╛рди рд▓реМрдЯрд╛рдПрдВ

* /

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рдорд╛рд░реЛрд╣ getParam ($ sParam = self :: PARSE_HOST )

{

...

}



...



}



рдЖрдкрдХреЛ рдпрд╛рдж рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:








All Articles