<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>التعليقات على: ORM مقدمة</title>
	<atom:link href="http://www.HazemKhaled.com/blog/php/orm-%d9%85%d9%82%d8%af%d9%85%d8%a9/feed" rel="self" type="application/rss+xml" />
	<link>http://www.HazemKhaled.com/blog/php/orm-%d9%85%d9%82%d8%af%d9%85%d8%a9</link>
	<description>أوراق خاصة</description>
	<lastBuildDate>Sat, 24 Dec 2011 14:49:57 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>بواسطة: Ahmed Tawfik</title>
		<link>http://www.HazemKhaled.com/blog/php/orm-%d9%85%d9%82%d8%af%d9%85%d8%a9/comment-page-1#comment-908</link>
		<dc:creator>Ahmed Tawfik</dc:creator>
		<pubDate>Thu, 01 Jul 2010 16:10:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.HazemKhaled.com/?p=567#comment-908</guid>
		<description>شرح رائع يا حازم وتكمله رائعه يا ابو الدهب بارك الله لكما</description>
		<content:encoded><![CDATA[<p>شرح رائع يا حازم وتكمله رائعه يا ابو الدهب بارك الله لكما</p>
]]></content:encoded>
	</item>
	<item>
		<title>بواسطة: حازم خالد</title>
		<link>http://www.HazemKhaled.com/blog/php/orm-%d9%85%d9%82%d8%af%d9%85%d8%a9/comment-page-1#comment-843</link>
		<dc:creator>حازم خالد</dc:creator>
		<pubDate>Wed, 06 Jan 2010 12:03:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.HazemKhaled.com/?p=567#comment-843</guid>
		<description>شاكر جداً لك على ردك

شرحت ووضحت بطريقة أفضل بكثير مما كتبته أنا

جزاك الله خير</description>
		<content:encoded><![CDATA[<p>شاكر جداً لك على ردك</p>
<p>شرحت ووضحت بطريقة أفضل بكثير مما كتبته أنا</p>
<p>جزاك الله خير</p>
]]></content:encoded>
	</item>
	<item>
		<title>بواسطة: abu_eldahab</title>
		<link>http://www.HazemKhaled.com/blog/php/orm-%d9%85%d9%82%d8%af%d9%85%d8%a9/comment-page-1#comment-842</link>
		<dc:creator>abu_eldahab</dc:creator>
		<pubDate>Wed, 06 Jan 2010 11:44:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.HazemKhaled.com/?p=567#comment-842</guid>
		<description>السلام عليكم ورحمة الله وبركاته

مقدمة جيدة يا حازم وإن كان لي بعض التعليق بخصوص ال ORM

مصطلح ال ORM والي هو إختصار ( object relational mapping)والي هي بدورها إختصار
object أتت من object oriented programming أو البرمجة الكائنية المتجهة والتي أصبحت أحد أهم ركائز لغات البرمجة الحديثة 

أما relational فهي إختصار من relational databases أو قواعد البيانات العلائقة والي طبعا أحد سمات قواعد البيانات الحديثة أيضاً

وبكل بساطة عشان نفهم ال ORM بشكل أوسع 

لو شوفنا أي خريطة هنلاقي إنها بتستخدم عشان توصلنا من مكان لمكان آخر أو من نقطة لنقطة آخرى 

وبما إن لغات البرمجة تطورت وتقدمت وأصبح غالب العمل بيتم من خلال البرمجة المتجهة ومميزاتها وأصبح عندنا مصطلح إسمه كائن أو object والكائن دا ليه خصائصه وصفاته وأحداثه الخاصة بيه

بدأ فيه إتجاه نحو تحويل أي شيئ إلى كائن والتعامل معه على هذا الأساس وظهرت بعض التقنيات مثلPDO أو PHP Data Objects والي بتيح لينا وسيلة وصول لقواعد البيانات والتعامل معها بدون كتابة جمل ال sql 

إذن أصبح لدينا
- لغة برمجة متجهه
- وسيلة تواصل برمجية تتخذ نفس أسلوب البرمجة الكائنية وتتيح لنا التعامل مع قواعد البيانات بدون كتابة جمل ال sql وتريح المبرمج من عناء معرفة الدريفرز او الانجنز الخاصة بقاعدة البيانات الي شغال عليها أو طريقة التصميم عليها

ولكن هل إكتفى التطور لهذا الحد ؟

بالطبع لا 

من الوسيلتين السابقتين ظهرت الحاجة للتنسيق بينهم أو عمل عمليه mapping وبدأ فيه مصطلح جديد إسمه ORM أو ( object relational mapping)

والي بيعتبر خريطة الوصول ما بين الكود البرمجي وقاعدة البيانات والعكس

بمعنى أنه ال ORM لا يقتصر عمله فقط على تحويل الجداول إلى كائنات والتعامل معها على هذا الأساس  

ولكن ال ORM ليه اتجاهين وطريقتين 
1- الطريقة الأولى وهو Database-First بحيث ان المبرمج بيقوم بتعريف قاعدة البيانات الخاصة بيه وجداولها وحقولها( مثلا في ملف xml أو yml ) أولا ثم تقوم ال ORM بتوليد الكود المسئول عن التعامل مع هذه القاعدة والي بيضمنه المصطلح CRUD  أو ( Create, read, update  delete ) والي بتعبر عن العناصر الأساسية في التعامل مع قواعد البيانات  ودي الي بيعرفها غالبية من عرف مصطلح ال ORM وكيفية إستخدامه 

2- الطريقة الثانية وهي Code-First أو Model-First والتي يقوم فيها المبرمج بكتابة الكلاس الخاصة بيه على سبيل المثال كلاس إسمها User وبداخلها الأكواد الخاصة مع هذا الكائن ثم تقوم ال ORM بتوليد وتصميم قاعدة البيانات التي تتناسب مع هذا الكود

ودول سياستين مختلفتين في البرمجة

وطبعا مكتبات ال ORM كثيرة ومختلفه الأنواع والإستخدام وربما أشهرها LINQ بالنسبة لمبرمجي vs.net والمكتبتين doctrine,Propel بالنسبة لمبرمجي اللغات الأخرى وخاصة مبرمجي ال php

أتمنى أن يكون هناك إستفاده من ردي وأعتذر عن الإطاله

وإلى الأمام يا صديقي</description>
		<content:encoded><![CDATA[<p>السلام عليكم ورحمة الله وبركاته</p>
<p>مقدمة جيدة يا حازم وإن كان لي بعض التعليق بخصوص ال ORM</p>
<p>مصطلح ال ORM والي هو إختصار ( object relational mapping)والي هي بدورها إختصار<br />
object أتت من object oriented programming أو البرمجة الكائنية المتجهة والتي أصبحت أحد أهم ركائز لغات البرمجة الحديثة </p>
<p>أما relational فهي إختصار من relational databases أو قواعد البيانات العلائقة والي طبعا أحد سمات قواعد البيانات الحديثة أيضاً</p>
<p>وبكل بساطة عشان نفهم ال ORM بشكل أوسع </p>
<p>لو شوفنا أي خريطة هنلاقي إنها بتستخدم عشان توصلنا من مكان لمكان آخر أو من نقطة لنقطة آخرى </p>
<p>وبما إن لغات البرمجة تطورت وتقدمت وأصبح غالب العمل بيتم من خلال البرمجة المتجهة ومميزاتها وأصبح عندنا مصطلح إسمه كائن أو object والكائن دا ليه خصائصه وصفاته وأحداثه الخاصة بيه</p>
<p>بدأ فيه إتجاه نحو تحويل أي شيئ إلى كائن والتعامل معه على هذا الأساس وظهرت بعض التقنيات مثلPDO أو PHP Data Objects والي بتيح لينا وسيلة وصول لقواعد البيانات والتعامل معها بدون كتابة جمل ال sql </p>
<p>إذن أصبح لدينا<br />
- لغة برمجة متجهه<br />
- وسيلة تواصل برمجية تتخذ نفس أسلوب البرمجة الكائنية وتتيح لنا التعامل مع قواعد البيانات بدون كتابة جمل ال sql وتريح المبرمج من عناء معرفة الدريفرز او الانجنز الخاصة بقاعدة البيانات الي شغال عليها أو طريقة التصميم عليها</p>
<p>ولكن هل إكتفى التطور لهذا الحد ؟</p>
<p>بالطبع لا </p>
<p>من الوسيلتين السابقتين ظهرت الحاجة للتنسيق بينهم أو عمل عمليه mapping وبدأ فيه مصطلح جديد إسمه ORM أو ( object relational mapping)</p>
<p>والي بيعتبر خريطة الوصول ما بين الكود البرمجي وقاعدة البيانات والعكس</p>
<p>بمعنى أنه ال ORM لا يقتصر عمله فقط على تحويل الجداول إلى كائنات والتعامل معها على هذا الأساس  </p>
<p>ولكن ال ORM ليه اتجاهين وطريقتين<br />
1- الطريقة الأولى وهو Database-First بحيث ان المبرمج بيقوم بتعريف قاعدة البيانات الخاصة بيه وجداولها وحقولها( مثلا في ملف xml أو yml ) أولا ثم تقوم ال ORM بتوليد الكود المسئول عن التعامل مع هذه القاعدة والي بيضمنه المصطلح CRUD  أو ( Create, read, update  delete ) والي بتعبر عن العناصر الأساسية في التعامل مع قواعد البيانات  ودي الي بيعرفها غالبية من عرف مصطلح ال ORM وكيفية إستخدامه </p>
<p>2- الطريقة الثانية وهي Code-First أو Model-First والتي يقوم فيها المبرمج بكتابة الكلاس الخاصة بيه على سبيل المثال كلاس إسمها User وبداخلها الأكواد الخاصة مع هذا الكائن ثم تقوم ال ORM بتوليد وتصميم قاعدة البيانات التي تتناسب مع هذا الكود</p>
<p>ودول سياستين مختلفتين في البرمجة</p>
<p>وطبعا مكتبات ال ORM كثيرة ومختلفه الأنواع والإستخدام وربما أشهرها LINQ بالنسبة لمبرمجي vs.net والمكتبتين doctrine,Propel بالنسبة لمبرمجي اللغات الأخرى وخاصة مبرمجي ال php</p>
<p>أتمنى أن يكون هناك إستفاده من ردي وأعتذر عن الإطاله</p>
<p>وإلى الأمام يا صديقي</p>
]]></content:encoded>
	</item>
	<item>
		<title>بواسطة: محمد المهدى</title>
		<link>http://www.HazemKhaled.com/blog/php/orm-%d9%85%d9%82%d8%af%d9%85%d8%a9/comment-page-1#comment-697</link>
		<dc:creator>محمد المهدى</dc:creator>
		<pubDate>Mon, 14 Sep 2009 12:41:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.HazemKhaled.com/?p=567#comment-697</guid>
		<description>درس ممتاز 

جزاك الله خيرا</description>
		<content:encoded><![CDATA[<p>درس ممتاز </p>
<p>جزاك الله خيرا</p>
]]></content:encoded>
	</item>
	<item>
		<title>بواسطة: حازم خالد</title>
		<link>http://www.HazemKhaled.com/blog/php/orm-%d9%85%d9%82%d8%af%d9%85%d8%a9/comment-page-1#comment-696</link>
		<dc:creator>حازم خالد</dc:creator>
		<pubDate>Mon, 14 Sep 2009 12:25:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.HazemKhaled.com/?p=567#comment-696</guid>
		<description>ال PDO هي أختصار لـ PHP Data Object

وهي تتعامل مع مخزنات البيانات بأختلاف أنواعها مباشرتاً وليس بعد تمثيلها ككائنات وفئات class لها علاقات ببعضها البعض

PDO هي أستخدمها بدل أستخدام مكتبة mysql في php ولها مميزتها عند أستخدامها ولكنها تجعلني أتعامل مع قواعد البيانات مباشرتاً وأقوم أنا بعمل map للعلاقات في رأسي عند التعامل معها.

أما ORM كما وضحنا تصل بك انك لا تتعامل مع قواعد بيانات !! لا تكتب SQL !! فأنت تتعامل مع كائنات تحمل بيانات بكل بساطة .

للعلم فإن DocTrain تستخدم PDO للتعامل مع قواعد البيانات</description>
		<content:encoded><![CDATA[<p>ال PDO هي أختصار لـ PHP Data Object</p>
<p>وهي تتعامل مع مخزنات البيانات بأختلاف أنواعها مباشرتاً وليس بعد تمثيلها ككائنات وفئات class لها علاقات ببعضها البعض</p>
<p>PDO هي أستخدمها بدل أستخدام مكتبة mysql في php ولها مميزتها عند أستخدامها ولكنها تجعلني أتعامل مع قواعد البيانات مباشرتاً وأقوم أنا بعمل map للعلاقات في رأسي عند التعامل معها.</p>
<p>أما ORM كما وضحنا تصل بك انك لا تتعامل مع قواعد بيانات !! لا تكتب SQL !! فأنت تتعامل مع كائنات تحمل بيانات بكل بساطة .</p>
<p>للعلم فإن DocTrain تستخدم PDO للتعامل مع قواعد البيانات</p>
]]></content:encoded>
	</item>
	<item>
		<title>بواسطة: حازم خالد</title>
		<link>http://www.HazemKhaled.com/blog/php/orm-%d9%85%d9%82%d8%af%d9%85%d8%a9/comment-page-1#comment-695</link>
		<dc:creator>حازم خالد</dc:creator>
		<pubDate>Mon, 14 Sep 2009 12:21:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.HazemKhaled.com/?p=567#comment-695</guid>
		<description>أعتقد توضيحك أكثر دقة، ولكني لست متأكد من شكل العلاقة بينهم وكان الشرح بالتوريث لتوضيح ال methods والصفات الوسيطة بين الكائنات المكتلفة !!

شكراً لتعليقك</description>
		<content:encoded><![CDATA[<p>أعتقد توضيحك أكثر دقة، ولكني لست متأكد من شكل العلاقة بينهم وكان الشرح بالتوريث لتوضيح ال methods والصفات الوسيطة بين الكائنات المكتلفة !!</p>
<p>شكراً لتعليقك</p>
]]></content:encoded>
	</item>
	<item>
		<title>بواسطة: ahmed shehata</title>
		<link>http://www.HazemKhaled.com/blog/php/orm-%d9%85%d9%82%d8%af%d9%85%d8%a9/comment-page-1#comment-694</link>
		<dc:creator>ahmed shehata</dc:creator>
		<pubDate>Mon, 14 Sep 2009 07:25:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.HazemKhaled.com/?p=567#comment-694</guid>
		<description>ما الفرق بين orm و pdo
بخصوص ال framworks زى ci هل افتراضيا يستخدم pdo ام يجب دمجه به ؟</description>
		<content:encoded><![CDATA[<p>ما الفرق بين orm و pdo<br />
بخصوص ال framworks زى ci هل افتراضيا يستخدم pdo ام يجب دمجه به ؟</p>
]]></content:encoded>
	</item>
	<item>
		<title>بواسطة: عمر حيدر قعدان</title>
		<link>http://www.HazemKhaled.com/blog/php/orm-%d9%85%d9%82%d8%af%d9%85%d8%a9/comment-page-1#comment-693</link>
		<dc:creator>عمر حيدر قعدان</dc:creator>
		<pubDate>Fri, 11 Sep 2009 00:00:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.HazemKhaled.com/?p=567#comment-693</guid>
		<description>لي تعليق بسيط هنا أعتقد ان تمثيل علاقات قواعد البيانات هنا في البيئة الكائنية هي علاقة إحتواء و ليست وراثة أي composition و ليست inheritances  يعني أن المنتجات ستكون كمتغير في فئة القسم</description>
		<content:encoded><![CDATA[<p>لي تعليق بسيط هنا أعتقد ان تمثيل علاقات قواعد البيانات هنا في البيئة الكائنية هي علاقة إحتواء و ليست وراثة أي composition و ليست inheritances  يعني أن المنتجات ستكون كمتغير في فئة القسم</p>
]]></content:encoded>
	</item>
</channel>
</rss>

