рд╕рдВрд╕реНрдХрд░рдг 0.5 рдХрд╛ рд╡рд┐рдореЛрдЪрди рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдЧрддрд┐рд╡рд┐рдзрд┐ рдкреГрд╖реНрда рдФрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдмреНрд▓реЙрдЧ рд╕реЗ рдПрдХ рд╡рд┐рд╖рдп рдлрд╝реАрдб рдЬреЛрдбрд╝рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреБрдЫ рдЕрдзрд┐рдХ рдерд╛ред рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг
ORM рдФрд░
ActiveRecord рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рд╕рд╛рде рдореЗрдВ, рд╡реЗ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЯреВрд▓рдХрд┐рдЯ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдЙрд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреЛрдб рдХреЗ рдвреЗрд░ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдкреНрд▓рдЧрдЗрди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдкрд░ рд╣рд░ рдмрд╛рд░ рд▓рд┐рдЦрдирд╛ рд╣реЛрддрд╛ рдерд╛ред рдПрдХ рд╣реА рдордВрдЪ, рдЬрд┐рд╕реЗ рд▓реЗрдЦ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреА, рдЕрдкрдбреЗрдЯ рдХреЗ рдмрд╛рдж рдХреЛрдб рдХреА 2177 рд▓рд╛рдЗрдиреЗрдВ
рдЦреЛрдиреА рдЪрд╛рд╣рд┐рдП ред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ LiveStreet рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓рдЧрдЗрди рдмрдирд╛рдХрд░ ORM рдФрд░ AR рдореЗрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ рддрд▓рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рд▓рдЧрднрдЧ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ,
рднрдЧреЛрдбрд╝реЗ рдиреЗ рдЯреНрд░рдВрдХ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдПрдХ рд▓реЗрдЦ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ред
рдореИрдВрдиреЗ рдЙрд╕ рд▓реЗрдЦ рд╕реЗ рд╢реБрд░реБрдЖрдд рдХреА рдереА, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд┐рд░реНрдл рдЙрд╕ рдЯреВрд▓рдХрд┐рдЯ рдХрд╛ рдкрд░рд┐рдЪрдп рд╣реИред рдРрд░реЗ рдХреЗ рдХреИрд╢, рдкреЗрдЬрд┐рдВрдЧ, рдЯреНрд░реА-рд▓рд╛рдЗрдХ рдлреЙрд░реНрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╢рдмреНрдж рдирд╣реАрдВ рд╣реИред рдореИрдВ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ рдкрд╛рдардХ рдХреЛ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ред рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ?
рдореИрдВ
рдордВрдЪ рдкреНрд▓рдЧрдЗрди рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реВрдВрдЧрд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╣рдореЗрдВ рдПрдХ рдкреНрд▓рдЧрдЗрди рдХрдВрдХрд╛рд▓ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЬреАрдердм рдкрд░ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдореИрдВ рдкреНрд▓рдЧрдЗрди рдХреЗ рд╡рд┐рд╡рд░рдг рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреВрдВрдЧрд╛редрдЕрдм рдордВрдЪ рдирд╛рдордХ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдПрдВред

рд╣рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░, Init рд╡рд┐рдзрд┐ рдореЗрдВ, рд╣рдореЗрдВ рдирд┐рдпрдорд┐рдд рдореЙрдбреНрдпреВрд▓ рд╕реЗ Init рд╡рд┐рдзрд┐ рдХреЗ рдореВрд▓ рдХреЛ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
class PluginForum_ModuleForum extends ModuleORM { public function Init() { parent::Init(); } }
рд╕рдВрд╕реНрдерд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдЙрдирдХреЗ рдмреАрдЪ рд╕рднреА рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдЧреЗрдЯрд░реНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реЗрд░рдлреЗрд░ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ:

рдФрд░ рдмрдирд╛рдИ рдЧрдИ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ:
Category.entity.class.php class PluginForum_ModuleForum_EntityCategory extends EntityORM {}
Forum.entity.class.php class PluginForum_ModuleForum_EntityForum extends EntityORM { protected $aRelations = array( 'category'=>array(EntityORM::RELATION_TYPE_BELONGS_TO,'PluginForum_ModuleForum_EntityCategory','category_id'), 'user'=>array(EntityORM::RELATION_TYPE_BELONGS_TO,'ModuleUser_EntityUser','user_id'), 'topic'=>array(EntityORM::RELATION_TYPE_BELONGS_TO,'PluginForum_ModuleForum_EntityTopic','topic_id'), 'post'=>array(EntityORM::RELATION_TYPE_BELONGS_TO,'PluginForum_ModuleForum_EntityPost','post_id'), ); }
Topic.entity.class.php class PluginForum_ModuleForum_EntityTopic extends EntityORM { protected $aRelations = array( 'user'=>array(EntityORM::RELATION_TYPE_BELONGS_TO,'ModuleUser_EntityUser','user_id'), 'post'=>array(EntityORM::RELATION_TYPE_BELONGS_TO,'PluginForum_ModuleForum_EntityPost','post_id'), 'forum'=>array(EntityORM::RELATION_TYPE_BELONGS_TO,'PluginForum_ModuleForum_EntityForum','forum_id'), ); }
Post.entity.class.php class PluginForum_ModuleForum_EntityPost extends EntityORM { protected $aRelations = array( 'user'=>array(EntityORM::RELATION_TYPE_BELONGS_TO,'ModuleUser_EntityUser','user_id'), 'topic'=>array(EntityORM::RELATION_TYPE_BELONGS_TO,'PluginForum_ModuleForum_EntityTopic','topic_id'), 'forum'=>array(EntityORM::RELATION_TYPE_BELONGS_TO,'PluginForum_ModuleForum_EntityForum','forum_id'), ); }
Read.entity.class.php class PluginForum_ModuleForum_EntityRead extends EntityORM {}
рдЕрдм рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд▓рдЧрдЗрди рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдП рдмрд┐рдирд╛ рдпрд╣ рд╕рдм рд╣реЗрд░рдлреЗрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
$this->PluginForum_ModuleForum_GetCategoryItemsAll();
$this->PluginForum_ModuleForum_GetForumItemsByCategoryId($oCategory->getId());
$this->PluginForum_ModuleForum_GetTopicItemsByForumId($oForum->getId(),array('#page' => array(1,15), '#cache'=>''));
# рдХреИрд╢ рдлрд╝рд┐рд▓реНрдЯрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рднреА рд▓реЗ рд╕рдХрддрд╛ рд╣реИ:
array( '#cache' => array( 'keys', 'tags', 'time' ) );
рд░рд┐рд╢реНрддреЗ рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реЛрддреЗ рд╣реИрдВ:
protected $aRelations = array( 'entity'=>array(EntityORM::RELATION_TYPE_BELONGS_TO,'ModuleSome_EntitySome','field_id'),
рд╕рдВрд╕реНрдерд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд░реАрдХреЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛрдВрдЧреЗ:
Add(); Update(); Save();
рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдирд╛рдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП: рдЙрдкрд╕рд░реНрдЧ_ <рдореЙрдбреНрдпреВрд▓-рдирд╛рдо> _ <рдЗрдХрд╛рдИ-рдирд╛рдо> (рдпрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдореЗрдВ рдЙрдирдХреЗ рдирд╛рдо рд▓рд┐рдЦреЗрдВ), рд▓реЗрдХрд┐рди рдпрджрд┐ рдЗрдХрд╛рдИ рдХрд╛ рдирд╛рдо рдореЙрдбреНрдпреВрд▓ рдХреЗ рдирд╛рдо рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рдмрд╕ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдирд╛рдо рдЗрд╕ рддрд░рд╣ рд╕реЗ рд░рдЦреЗрдВ: рдЙрдкрд╕рд░реНрдЧ_ <рдореЙрдбреНрдпреВрд▓- рдирд╛рдо>ред рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЗ рдЕрдкрдиреЗ рдорд╛рдирдХ рднреА рд╣реЛрддреЗ рд╣реИрдВ: <рдЗрдХрд╛рдИ-рдирд╛рдо> _ <рдлрд╝реАрд▓реНрдб-рдирд╛рдо>, рдпрд╛ рдмрд╕ <рдлрд╝реАрд▓реНрдб-рдирд╛рдо>ред
рдпрд╣ рд╕рдм, рд╕рдЬреНрдЬрдиреЛрдВ, рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдирд╡реАрдирддрдо рдлреЛрд░рдо рд╕реНрд░реЛрддреЛрдВ рдХреЛ
рдЬреАрдЖрдИрдЯреА рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
UPD : рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рд╕реБрдзрд╛рд░ рдХрд┐рдП рдЧрдП, рдЙрдирдХреА
рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП
ort рдХрд╛ рдзрдиреНрдпрд╡рд╛рджред