<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>حازم خالد &#187; PHP</title>
	<atom:link href="http://www.HazemKhaled.com/blog/category/php/feed" rel="self" type="application/rss+xml" />
	<link>http://www.HazemKhaled.com</link>
	<description>أوراق خاصة</description>
	<lastBuildDate>Tue, 26 Jul 2011 07:48:27 +0000</lastBuildDate>
	<language>ar</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>How to be senior ?</title>
		<link>http://www.HazemKhaled.com/blog/php/how-to-be-senior</link>
		<comments>http://www.HazemKhaled.com/blog/php/how-to-be-senior#comments</comments>
		<pubDate>Sat, 08 May 2010 13:30:12 +0000</pubDate>
		<dc:creator>حازم خالد</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.HazemKhaled.com/?p=683</guid>
		<description><![CDATA[امس‏ ألقيت محاضرة في‏ الأجتماع الشهري لمجموعة EgyptIT (سابقاً Egypt web) بعنوان‏ &#8220;كيف تكون مطور محترف&#8221;، المحاضرة في الأصل لغازي إكرام في جدة جييكس بعنوان &#8220;How To Become A Php Geek&#8221;. بعد إستأذنه أضفت‏ بعض العناصر والمزيد من التطبيق والمناقشة‏ أثناء‏ المحاضرة وألقيتها أمس، وهذه عناصر المحاضرة. ما هي مميزات المبرمج المحترف Senior ؟ يمكنه [...]]]></description>
			<content:encoded><![CDATA[<p>امس‏ ألقيت محاضرة في‏ الأجتماع الشهري لمجموعة EgyptIT (سابقاً Egypt web) بعنوان‏ &#8220;كيف تكون مطور محترف&#8221;، المحاضرة في الأصل ل<a href="http://www.ekram.info/" target="_blank">غازي إكرام</a> في جدة جييكس بعنوان &#8220;How To Become A Php Geek&#8221;.</p>
<p>بعد إستأذنه أضفت‏ بعض العناصر والمزيد من التطبيق والمناقشة‏ أثناء‏ المحاضرة وألقيتها أمس، وهذه عناصر المحاضرة.</p>
<p><strong>ما هي مميزات المبرمج المحترف Senior ؟</strong></p>
<ul>
<li>يمكنه انتاج عمل أكثر في وقت أقل</li>
<li>يمكنه العمل على المشاريع طويلة الأمد</li>
<li>يمكنه العمل مع فريق</li>
<li>يمكنه العمل على المشاريع الضخمة</li>
</ul>
<p><strong>لماذا أحدث نفسي لكي أكون مبرمج محترف ؟</strong></p>
<ul>
<li>للحصول على راتب أكبر</li>
<li>للبدئ في لتدرجك في مناسب مجالك (مدير فريق، مدير مشاريع &#8230; ألخ)</li>
<li>العمل في الشركات الكبيرة</li>
<li>العمل على مشاريع ناجحة تكون مفيدة لك في المستقبل</li>
</ul>
<p><strong>كيفية زيادة الكفائة البرمجية</strong></p>
<ul>
<li>أتبع المعايير القياسية في كتابة أكوادك ( معايير <a href="http://framework.zend.com/manual/en/coding-standard.html" target="_blank">Zend</a> ومعايير <a href="http://pear.php.net/manual/en/standards.php" target="_blank">PEAR</a> )
<ul>
<li>يجب أن يكون اكوادك سهلة القراءة</li>
<li>أهتم بالتعليقات</li>
<li>أهتم بكتابة توثيق للكود، وشرحنا كم هو كتابة التوثيقات أمر سهل ( <a href="http://phpdoc.org/" target="_blank">PhpDocumentor</a> &#8211; <a href="http://www.doxygen.org/" target="_blank">Doxygen</a> )</li>
<li>أهتم بعمل أصدارات لبرنامجك (قريباً سأتحدث أكثر عن أستخدام أنظمة الأصدارات الفرعية وفائدتها للفرد ولفرق العمل)</li>
</ul>
</li>
<li>لا تخترع العجلة
<ul>
<li> لا تكتب فئة class أو دالة function وهي موجوده من قبل</li>
<li>حاول أن لا تعيد ما كتبته من قبل</li>
<li>أستعن بموقع PHPClasses.org و SF.net للحصول على المكتبات التي تريدها</li>
</ul>
</li>
<li>طور من جودة أكوادك
<ul>
<li>أكتب اكواد بسيطة، كلما فكرت أكثر كتبت كود أقل، في نفس الوقت لا تحاول ان تكتب اكواد معقدة يصعب على فريقك فهمها</li>
<li>أكتب اكواد سهلة الصيانة</li>
</ul>
</li>
<li>أستخدام أطر العمل العامة Public Frameworks
<ul>
<li>سهلة التطوير</li>
<li>هناك العديد من المكتبات</li>
<li>معظم المشاكل التي ستقابلك حلها غيرك من قبل</li>
</ul>
</li>
<li>استخدم انظمة إدارة المحتوى
<ul>
<li>العديد من الأضافات متوفرة Plugins</li>
<li>كود سهل ومعروف للكثير</li>
<li>معظم متطلبات مشروعك ستجدها متوفرة به أفتراضياً او ببعض لأضافات البسيطة</li>
</ul>
</li>
<li>أستخدم بيئات التطوير المتكاملة IDEs
<ul>
<li>توفير للوقت</li>
<li>تعطيك المزيد من الكفائة</li>
<li>تساعدك في تنقيح وتصحيح الكود Debug</li>
</ul>
</li>
</ul>
<p><strong>التطوير الذاتي</strong></p>
<ul>
<li>تواصل مع غيرك من المبرمجين</li>
<li>أقرأ العديد من التدوينات</li>
<li>أكتب تدوينات فهي لا تقل أهمية عن القرائة بل ان هناك إفادة لا تحصل عليها إلا من الكتابة</li>
<li>قبل كتابتك للاكواد أبحث كيف كتبها غيرك اولاً</li>
<li>شاك في احد المشاريع مفتوحة المصدر</li>
<li>أستخدم أطار عمل جافا سكريبت (jQuery, MooTools &#8230;. ألخ)</li>
<li>أستخدم أكثر من قاعدة بيانات (MySql, SqLite, &#8230;.. ألخ)</li>
<li>أنشر معرفتك للغير</li>
</ul>
<p>بعض الزملاء صورو المحاضرة بكاميرات موبيل، إن كانت مناسبة سيتم رفعها بإذن الله، ويمكن مشاهدة المحاضرة التي أعطاها غازي بالأنجليزية من <a href="http://vimeo.com/7679926">هنا</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.HazemKhaled.com/blog/php/how-to-be-senior/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>أحتاج مساعدتك في مقارنة عن ال IDEs</title>
		<link>http://www.HazemKhaled.com/blog/php/%d8%a3%d8%ad%d8%aa%d8%a7%d8%ac-%d9%85%d8%b3%d8%a7%d8%b9%d8%af%d8%aa%d9%83-%d9%81%d9%8a-%d9%85%d9%82%d8%a7%d8%b1%d9%86%d8%a9-%d8%b9%d9%86-%d8%a7%d9%84-ides</link>
		<comments>http://www.HazemKhaled.com/blog/php/%d8%a3%d8%ad%d8%aa%d8%a7%d8%ac-%d9%85%d8%b3%d8%a7%d8%b9%d8%af%d8%aa%d9%83-%d9%81%d9%8a-%d9%85%d9%82%d8%a7%d8%b1%d9%86%d8%a9-%d8%b9%d9%86-%d8%a7%d9%84-ides#comments</comments>
		<pubDate>Sun, 13 Dec 2009 20:06:30 +0000</pubDate>
		<dc:creator>حازم خالد</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[IDE]]></category>

		<guid isPermaLink="false">http://www.HazemKhaled.com/?p=647</guid>
		<description><![CDATA[السلام عليكم احتاج رأيك في مجموعة عناصر لتحضيري مقالتين عن ال IDEs الخاصة بالPHP وفوائد أستخدمها هل تعرف IDEs تدعم الPHP وتكون Cross-platform و مجانية غير eclipse وعائلته و netbeans ؟ هل تأيد رأيي في ضرورة العمل بمحررات Cross-platform أي تعمل على أي نظام تشغيل، على الأقل تحسباً للانتقال من نظام تشغيل لأخر ؟ هل [...]]]></description>
			<content:encoded><![CDATA[<p>السلام عليكم</p>
<p>احتاج رأيك في مجموعة عناصر لتحضيري مقالتين عن ال IDEs الخاصة بالPHP وفوائد أستخدمها</p>
<ol>
<li>هل تعرف IDEs تدعم الPHP وتكون Cross-platform و مجانية غير eclipse وعائلته و netbeans ؟</li>
<li>هل تأيد رأيي في ضرورة العمل بمحررات Cross-platform أي تعمل على أي نظام تشغيل، على الأقل تحسباً للانتقال من نظام تشغيل لأخر ؟</li>
<li>هل تعتبر رغبتي في المقارنة بين ال IDEs المجانية يقلل من الأفادة المقدمة للقارئ ؟ ام انه لا يوجد مدفوع ينافس المجاني ؟ ام تريد ادخال IDEs مدفوعة مثل Zend Studio و Komodo و vs.php وغيرهم ؟</li>
<li>هل تستخدم IDE ؟ ما هي الأمكانيات التي تعجبك به ؟ وإذا كنت لا تستخدمه فما هو السبب ؟</li>
</ol>
<p>شاكر لك</p>
]]></content:encoded>
			<wfw:commentRss>http://www.HazemKhaled.com/blog/php/%d8%a3%d8%ad%d8%aa%d8%a7%d8%ac-%d9%85%d8%b3%d8%a7%d8%b9%d8%af%d8%aa%d9%83-%d9%81%d9%8a-%d9%85%d9%82%d8%a7%d8%b1%d9%86%d8%a9-%d8%b9%d9%86-%d8%a7%d9%84-ides/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>حدث PHP على اوبنتو بنفسك عشان كونيكال مش ناوية</title>
		<link>http://www.HazemKhaled.com/blog/php/upgrate-php5-3-upuntu</link>
		<comments>http://www.HazemKhaled.com/blog/php/upgrate-php5-3-upuntu#comments</comments>
		<pubDate>Sat, 24 Oct 2009 05:50:18 +0000</pubDate>
		<dc:creator>حازم خالد</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.HazemKhaled.com/?p=629</guid>
		<description><![CDATA[قالي أبو يوسف على حاجة في Overloading وانا بجربها لقيتها جديدة PHP 5.3 فقط، فدورت ازاي احدث PHP على اوبنتو لاني عارف انهم مش هيتحث لوحدو إلا مع النسخة الجديدة ولكن الغريب اني لقيت هنا انهم بيقولو مش هيحدثو PHP على اوبنتو لأن حتى الأن suhosin patch منزلش ل php 5.3. طبعاً الكلام ده قديم [...]]]></description>
			<content:encoded><![CDATA[<p>قالي <a href="http://www.aboyousif.net/" target="_blank">أبو يوسف</a> على <a href="http://www.php.net/__call#language.oop5.overloading.methods" target="_blank">حاجة  في Overloading</a> وانا بجربها لقيتها جديدة PHP 5.3 فقط، فدورت ازاي احدث PHP على اوبنتو لاني عارف انهم مش هيتحث لوحدو إلا مع النسخة الجديدة ولكن الغريب اني لقيت <a href="https://wiki.ubuntu.com/MeetingLogs/Server/20090707" target="_blank">هنا</a> انهم بيقولو مش هيحدثو PHP على اوبنتو لأن حتى الأن suhosin patch منزلش ل php 5.3.</p>
<p>طبعاً الكلام ده قديم فالأجتماع كان من أكثر من 3 شهور ودلوقتي suhosin patch متاحة ل php 5.3 وقبل ما أي حد يقولي ده فريق ubuntu server اديني قولتها ولكن أتوقع أن هما الي ليهم الأحقية في فرض قرار زي ده على باقي التوزيهات فاكيد أحنا بناخد بالنا أن التوزيعات متشابهة في أساياتها وفي كمالياتها كمان، على العموم دي الطريقة ونتمنى نلاقيها بعد 5 أيام لما تنزل النسخة الجديدة بإذن الله.</p>
<p>اكتب السطر ده في الترمينال<br />
<code>sudo gedit /etc/apt/sources.list</code></p>
<p>هيفتح ملف ضيف السورسات دول في اخره<br />
<code>deb http://php53.dotdeb.org stable all<br />
deb-src http://php53.dotdeb.org stable all</code></p>
<p>وبعدها احفظ وأقفل، واكتب السطر ده في الترمينال عشان يسطب<br />
<code>apt-get update &amp;&amp; apt-get dist-upgrade</code></p>
<p>تمام كده عندك PHP 5.3 ولو انت بتستخدم short tags فهي هتكون مقفولة تفتحها بانك تكتب السطر ده في الترمينال<br />
<code>sudo gedit /etc/php5/apache2/php.ini</code></p>
<p>هيفتح ملف أبحث فيه عن<br />
<code>short_open_tag = Off</code><br />
وخليها<br />
<code>short_open_tag = On</code></p>
<p>وطبعاً لازم تعيد تشغيل الأباتشي عن طريق كتابة الأمر ده في الترمينال<br />
<code>sudo service apache2 restart</code></p>
<p>وياريت بلاش تستخدمها بعد كده لأني لسه قاري دلوقتي انها هتتقفل في PHP6</p>
<p>تحديث : لو ظهر معاك الخطا ده وانت بتسطب ال php5-mcrypt<br />
<code>php5-mcrypt: Depends: libltdl3 (&gt;= 1.5.2-2) but it is not installable</code></p>
<p>فسطب ده الأول (<a href="http://packages.debian.org/lenny/amd64/libltdl3/download" target="_blank">64</a> &#8211; <a href="http://packages.debian.org/lenny/i386/libltdl3/download" target="_blank">x86</a>) وتتحل المشكلة بإذن الله</p>
<p><a href="http://www.dotdeb.org/2009/07/03/php-5-3-0-final-preview-packages-available-for-debian-lenny/" target="_blank">شكراً لصاحب المستودع</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.HazemKhaled.com/blog/php/upgrate-php5-3-upuntu/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ORM مقدمة</title>
		<link>http://www.HazemKhaled.com/blog/php/orm-%d9%85%d9%82%d8%af%d9%85%d8%a9</link>
		<comments>http://www.HazemKhaled.com/blog/php/orm-%d9%85%d9%82%d8%af%d9%85%d8%a9#comments</comments>
		<pubDate>Wed, 09 Sep 2009 15:58:46 +0000</pubDate>
		<dc:creator>حازم خالد</dc:creator>
				<category><![CDATA[ORM]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Doctraine]]></category>
		<category><![CDATA[Propel]]></category>

		<guid isPermaLink="false">http://www.HazemKhaled.com/?p=567</guid>
		<description><![CDATA[من فترة لم أكتب درس عن شئ في لغة php ومنذ قليل وأنا أحضر ما سأقولو اليوم عن ORM في السحور التقني فقولت أضع هذا التحضير كنقاط أساسية لقلة المصادر العربية التي تتحدث عن هذا الموضوع. ORM وهي أختصار لـ object-relational mapping يمكن يكون ترجمة للمصطلع هو &#8220;كائن رسم خرائط العلاقات&#8221; ولكنها ترجمه غير دقيقة [...]]]></description>
			<content:encoded><![CDATA[<p>من فترة لم أكتب درس عن شئ في لغة php ومنذ قليل وأنا أحضر ما سأقولو اليوم عن ORM في السحور التقني فقولت أضع هذا التحضير كنقاط أساسية لقلة المصادر العربية التي تتحدث عن هذا الموضوع.</p>
<p>ORM وهي أختصار لـ object-relational mapping يمكن يكون ترجمة للمصطلع هو &#8220;كائن رسم خرائط العلاقات&#8221; ولكنها ترجمه غير دقيقة بشكل كبير ولكني لم أحصل على بديل (أتمنى تصلحلي هذا المصطلح) وهو يعتبر كائن تمثيل العلاقات بين جداول قاعدة البيانات التي تعمل معها.</p>
<p>حتى الأن أعلم انك لم تستفيد &#8230; حسناً، بكل بساطة ما هي الأستفادة من تمثيل هذه العلاقات او البيانات بشكل أخص !! هي تمثلها على شكل كائنات وصفات .. نعم، كمثال تخيل أن هناك جدولين أحدهما للأقسام والأخر للمنتجت بداخله، والعلاقية بينهم many to one وأكيد ال one هو القسم، فبالتالي يكون عندنا تمثيلهم كفأتين 2 class ، أحدهما يمثل جدول القسم والأخر يمثل المنتجات، وبينهما method وسيطة وهي التي تمثل حقل الربط.</p>
<p>هنا عند التعامل مع record في جدول المنتجات فهو سيكون عبارة عن كائن مورث من كائن المنتجات المورث من كائن القسم، طبعاً وراثته من كائن القسم تكون في خصائص الربط فقط.</p>
<p>بماذا تيفيديني كل هذه العمليات !! عندما تتعامل مع قاعدة البيانات عن طريق ال ORM فأنت تربح الكثير من الأمكانيات الأخرى ككونه وسيط بينك وبين أي نوع قاعدة بيانات، كما أنه سيقوم بعمل معظم ما تحتاجه في الـ model إذا كنت تعمل على MVC مثلاً، كما أنه &#8230;. هناك الكثير ولكن هذا ليس وقته.</p>
<p>ORM لا يقتصر تعامله على لغة بعينها أو برنامج معين بل أنه مصطلع برمجي عام كالـ MVC مثلاً ويمكنك التعامل به بشكل منفصل او داخل إطار عمل معين تحب أستخدامه.</p>
<p>في PHP يمكنك أستخدامع مع أي أطار عمل عام كـ CI أو ZFM أو symfony أو &#8230;. ألخ، او حتى إطار عمل خاص بك، وحتى لو لم تستعمل إطار عمل أو كان طريقة برمجتك بدائية جداً من وجهة نظرك فإن الـ ORM سيفيدك التعامل معه وسيوفر عليك الكثير ويضمن لك المزيد من الجودة  في العمل.</p>
<h2>نبدأ &#8230; أكيد PHP</h2>
<p>في PHP يوجد هناك cakephp والذي يحتوى على ORM مدمج ولكني لم أستخدمه، أما أي أطار عمل أخر فمنهم من يعتمد على كائنات عامة وتأتي بشكل مدمج بداخله كـ symfony ومنهم من يحتاج لدمجه معهم كـ CI أو ZFM وبطريقى سهلة جداً وموجود أمثلة كثيرة عملية على الأنترنت.</p>
<p><strong>إذا ما هي كائنات ORM الموجودة والتي من الممكن أستخدامها في PHP ؟</strong><br />
أشهر الموجود هو <a href="http://www.doctrine-project.org/" target="_blank">Doctraine</a> و<a href="http://propel.phpdb.org/trac/" target="_blank">Propel</a>، وعن نفسي أستخدمت الأولى أكثر في أطار عمل symfony عندما كنت اعمل في إمارة مكة، رغم اني أستخدمت الأثنين للتجربة لكن كان اختيار زميل العمل صدري صحراوي لي هو Doctraine ولهذا أستخدمته أكثر.</p>
<p>البداية بكل بساطة أن عليك تكوين قاعدة بيناتك في ملف بصيغة yml لتكوين جداولك وعلاقاتها ببعض، وهذا مثال بسيط من موقع Doctraine</p>

<div class="wp_syntax"><div class="code"><pre class="yml" style="font-family:monospace;">User:
  columns:
    id:
      primary: true
      autoincrement: true
      type: integer(4)
    username: string(255)
    password: string(255)
  relations:
    Groups:
      class: Group
      refClass: UserGroup
      foreignAlias: Users
&nbsp;
Group:
  tableName: groups
  columns:
    id:
      primary: true
      autoincrement: true
      type: integer(4)
    name: string(255)
&nbsp;
UserGroup:
  columns:
    user_id: integer(4)
    group_id: integer(4)
  relations:
    User:
      onDelete: CASCADE
    Group:
      onDelete: CASCADE</pre></div></div>

<p>وهنا بكل بساطة أصبح لدينا 3 كائنات و3جداول، وكل كائن هو لجدول  بنفس الأسم عدا جدول groups سيكون الكائن الخاص به بأسن Group وطبعاً هذا من السطر tableName: groups. طبعاً لا يحتاج أي سطر لشرحه لمن لديه معرفة في العلاقات داخل قواعد البيانات، وطبعاً هذا غير قائم في قواعد بيانات MySql من نوع MyIsam والمعتاد أستخدامها ولكن MySql توفرها في قواعد بيانات من نوع InnoDBوهي لا تحتاج غير تغير نوع الجدول عن أنشائه فقط ثم عليك أضافة بعض الأسطر الخاصة بالعلاقات المطلوبة أثناء إنشائك لجداول قاعدة البيانات. طبعاً هذه العلاقات موجوده في أي قاعدة بيانات اخرى أفتراضياً أي كان نوعها.</p>
<p>أيضاً كان اكمال المثال ببيانات أفتراضية يمكنك وضعها في قاعدة البيانات عند أنشائك للكائنات اول مرة، وهذا مثال للملف بصيغة yml أيضاً</p>

<div class="wp_syntax"><div class="code"><pre class="yml" style="font-family:monospace;">User:
  zyne:
    username: zYne-
    password: changeme
    Groups: [founder, lead, documentation]
  jwage:
    username: jwage
    password: changeme
    Groups: [lead, documentation]
&nbsp;
Group:
  founder:
    name: Founder
  lead:
    name: Lead
  documentation:
    name: Documentation</pre></div></div>

<p>طبعاً هنا تم أدخال سجلين في جدول الأعضاء وثلاثة في جدول المجموعات و5 سجلات بجدول UserGroup، اتمنى تكون الموضوع واضح ويمكنك طلب النزضيح في التعليقات أيضاً.</p>
<p>الأن لنبدا العمل، بعد هذا سنقوم بكتابة الأمر المسؤل عن بناء الكائنات والتي سيقوم بأنشاء جداول قاعدة البيانات في السرفر الذي ستعطيه بيناته، ثم أدخال البيانات ثم توليد ملفات PHP التي بها اكواد الفئات classes التي ستتعامل مع كائنتها فيما بعد. هذا مثال للتعامل مع السجل بطريقة &#8220;active record pattern&#8221; أو يعني ممكن نسميها نمط السجل النشط <img src='http://www.HazemKhaled.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  لا هو من رأيي يعتبر ترجمة مناسبة، أنظر المثال.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"> <span style="color: #000088;">$user</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> User<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 <span style="color: #000088;">$user</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>username <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Tohamy&quot;</span><span style="color: #339933;">;</span>
 <span style="color: #000088;">$user</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>password <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Hiall2468&quot;</span><span style="color: #339933;">;</span>
 <span style="color: #000088;">$user</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>save<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;The user with id <span style="color: #006699; font-weight: bold;">$user</span>-&amp;gt;id has been saved.&quot;</span><span style="color: #339933;">;</span></pre></div></div>

<p>هذه بكل بساطة طريقة للتعامل مع جدول User او الكائن User لأدخال سجل جديد.</p>
<p>هذا المقال فقط لتوضيح ما هو ORM يمكنك تجربة Doctraine من هذا <a href="http://www.doctrine-project.org/documentation/cookbook/1_1/en/my-first-project">المثال البسيط</a>، كما ستجد في باقي المثال طريقة دمجه من CI وأيضاً يمكنك البحث عن طرق لدمجه مع أي أطار عمل أخر.</p>
<p><strong>مصادر<br />
</strong></p>
<ul>
<li><a href="http://blog.dotnetarabi.com/?p=38" target="_blank">بود كاست</a> عن الـ ORM وأستخدامها في .NET من مدونة دوت نت عربي</li>
<li></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.HazemKhaled.com/blog/php/orm-%d9%85%d9%82%d8%af%d9%85%d8%a9/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>CakePHP .. php  framework</title>
		<link>http://www.HazemKhaled.com/blog/php/cakephp-php-framework</link>
		<comments>http://www.HazemKhaled.com/blog/php/cakephp-php-framework#comments</comments>
		<pubDate>Thu, 21 Aug 2008 07:16:58 +0000</pubDate>
		<dc:creator>حازم خالد</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[CakeForge]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[php  framework]]></category>

		<guid isPermaLink="false">http://www.HazemKhaled.com/?p=159</guid>
		<description><![CDATA[framework تعني بيئة عمل، وهي تقال لأي نظام عمل متكامل يمكنك أستخدامه لتوفير وقت وجهد بأعتمادك على بعض المكتبات التي من برمجتك أو برمجة أي أحد أخر. من وجهة نظري إذا أي أسلوب عمل مع بعض المكتبات البسيطة (class أو functions) تعتبر هي بيئة العمل الخاصة بك. يوجد العديد من بيئات العمل التي تساعدك على [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://cakephp.org" target="_blank"><img src="http://cakephp.org/img/cake-logo.png" alt="CakePHP .. php  framework" align="left" /> </a> framework تعني بيئة عمل، وهي تقال لأي نظام عمل متكامل يمكنك أستخدامه لتوفير وقت وجهد بأعتمادك على بعض المكتبات التي من برمجتك أو برمجة أي أحد أخر.</p>
<p>من وجهة نظري إذا أي أسلوب عمل مع بعض المكتبات البسيطة (class أو functions) تعتبر هي بيئة العمل الخاصة بك.</p>
<p>يوجد العديد من بيئات العمل التي تساعدك على أنتاج ناتج أكبر بكود أقل ومجهود قليل، كذلك يمكنهم handling errors و التعامل مع قواعد البيانات وفلترة المدخلات التي تأتي من العميل و &#8230;. ألخ، مما يوفر عليك الوقت والجهد كما سبقت القول.</p>
<p><a href="http://dev.holooli.com/2008/08/03/%D8%AA%D8%B9%D9%84%D9%85-%D8%A7%D9%84%D9%83%D9%8A%D9%83-%D9%88%D8%AA%D8%B7%D9%88%D9%8A%D8%B1-%D8%A7%D9%84%D9%85%D9%88%D8%A7%D9%82%D8%B9-%D8%A8%D8%A7%D9%84%D8%A8%D9%8A%D8%AA/" target="_blank"><img src="http://dev.holooli.com/wp-content/uploads/ban3.png" alt="تعلم الكيك وتطوير المواقع بالبيت" align="left" /> </a> سبق وتعاملت مع CackePHP ولكني لم أعجب به، أعتقد هذا في أواخر 2005 تقريباً، ولهذا سأطلع عليه مرة أخرى هذه الفترة خاصتاً مع بدأ هذه السلسلة التي تسمى <a href="http://dev.holooli.com/2008/08/03/%D8%AA%D8%B9%D9%84%D9%85-%D8%A7%D9%84%D9%83%D9%8A%D9%83-%D9%88%D8%AA%D8%B7%D9%88%D9%8A%D8%B1-%D8%A7%D9%84%D9%85%D9%88%D8%A7%D9%82%D8%B9-%D8%A8%D8%A7%D9%84%D8%A8%D9%8A%D8%AA/" target="_blank">تعلم الكيك وتطوير المواقع بالبيت</a> بالأضافة أني وجدت موقعهم قد تغير كثيراً وهناك نسخة تسمى 1.2 أعتقد أنها جديدة.</p>
<p>إذاً فخطوات العمل كالتالي :-</p>
<ol>
<li><a href="http://cakeforge.org/frs/?group_id=23&amp;release_id=399" target="_blank">حمل</a> بيئة العمل من موقعهك الرئيسي</li>
<li>سأطلع بإذن الله على <a href="https://trac.cakephp.org/wiki/changelog/1.2.x.x" target="_blank">Changelog</a> لأنه أكثر شئ يسخني لأكمال هذه المراحل</li>
<li>أبدأ بتصفح <a href="http://book.cakephp.org" target="_blank">التوثيق</a> الخاص ببيئة العمل، وكذلك من الجيد لبعض الأخوة وجود <a href="http://book.cakephp.org/ar" target="_blank">نسخة عربي من التوثيق</a></li>
<li>لا تنسى متابعة السلسلة الموضحة بالأعلى</li>
<li>يمكنك الدخول على <a href="http://cakeforge.org/" target="_blank">CakeForge.org</a> للأطلاع على المذيد من البرمجيات المستخدمة CakePHP والمفتوحة المصدر</li>
</ol>
<p>مقارنات بين أشهر بيئات العمل الخاصة بال PHP</p>
<p>http://www.phpit.net/demo/framework%20comparison/chart.php</p>
<p>http://ava.vereinsportal.ch/index/1169/file/php-framework-comparison.html</p>
<p>http://www.thecredence.com/php-frameworks-which-one-is-most-suitable-for-you/</p>
]]></content:encoded>
			<wfw:commentRss>http://www.HazemKhaled.com/blog/php/cakephp-php-framework/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>كورس جديد، مجموعة رائعة حتى الأن</title>
		<link>http://www.HazemKhaled.com/blog/php/%d9%83%d9%88%d8%b1%d8%b3-%d8%ac%d8%af%d9%8a%d8%af%d8%8c-%d9%85%d8%ac%d9%85%d9%88%d8%b9%d8%a9-%d8%b1%d8%a7%d8%a6%d8%b9%d8%a9-%d8%ad%d8%aa%d9%89-%d8%a7%d9%84%d8%a3%d9%86</link>
		<comments>http://www.HazemKhaled.com/blog/php/%d9%83%d9%88%d8%b1%d8%b3-%d8%ac%d8%af%d9%8a%d8%af%d8%8c-%d9%85%d8%ac%d9%85%d9%88%d8%b9%d8%a9-%d8%b1%d8%a7%d8%a6%d8%b9%d8%a9-%d8%ad%d8%aa%d9%89-%d8%a7%d9%84%d8%a3%d9%86#comments</comments>
		<pubDate>Thu, 27 Mar 2008 09:45:13 +0000</pubDate>
		<dc:creator>حازم خالد</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[دورات تدريبية (كورسات)]]></category>
		<category><![CDATA[كورسات php]]></category>
		<category><![CDATA[دورات php]]></category>
		<category><![CDATA[دورات بي أتش بي]]></category>

		<guid isPermaLink="false">http://www.HazemKhaled.com/blog/php/%d9%83%d9%88%d8%b1%d8%b3-%d8%ac%d8%af%d9%8a%d8%af%d8%8c-%d9%85%d8%ac%d9%85%d9%88%d8%b9%d8%a9-%d8%b1%d8%a7%d8%a6%d8%b9%d8%a9-%d8%ad%d8%aa%d9%89-%d8%a7%d9%84%d8%a3%d9%86</guid>
		<description><![CDATA[بعد أن أعلنت توقف الدورات (وكان السبب الأساسي هو عدم توين المجموعات) فتكونت مجموعة وأعتقد أن السبب الأساسي في تكوينها هو أ/ محمود المجموعة تتكون من 5 أشخاص، 3 منهم مطورين ويب بالفعل (أحدهم مبرمج ASP .NET في Link Development, وأثنين آخرين مطورين مبتدئين في شركة)، و واحد كان شغال PHP بالفعل من فترة وهو [...]]]></description>
			<content:encoded><![CDATA[<p>بعد أن أعلنت توقف الدورات (وكان السبب الأساسي هو عدم توين المجموعات) فتكونت مجموعة وأعتقد أن السبب الأساسي في تكوينها هو أ/ محمود</p>
<p>المجموعة تتكون من 5 أشخاص، 3 منهم مطورين ويب بالفعل (أحدهم مبرمج ASP .NET في Link Development, وأثنين آخرين مطورين مبتدئين في شركة)، و واحد كان شغال PHP بالفعل من فترة وهو متخرج من حاسبات، والأخير لا يعلم PHP ولكنه خريج حاسبات هو أيضاً وتعامل مع C (وأعتقد أن زكائة مشجع جداً)</p>
<p>الكورس في مركز SIGMA ولكن للأسف المركز لما أديت فيه دورة من سنة تقريباً كان متخصص في الكمبيوتر أكثر وكانت قاعة الكمبيوتر أفضل أما الأن (ربنا يباركلهم) قللو دورات الكمبيوتر ويهتمو بالجامعات لعل المكان أصبح جميل بالداخل ولكن قاعة الكمبيوتر كانت أقل من المتوقع للأسف، ولكنا تفي بالغرض.</p>
<p>المجموعة بدأت بقالها دورتين وبإذن الله أعتقد أننا سنصل لمستوى جيد في أخر الدورة.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.HazemKhaled.com/blog/php/%d9%83%d9%88%d8%b1%d8%b3-%d8%ac%d8%af%d9%8a%d8%af%d8%8c-%d9%85%d8%ac%d9%85%d9%88%d8%b9%d8%a9-%d8%b1%d8%a7%d8%a6%d8%b9%d8%a9-%d8%ad%d8%aa%d9%89-%d8%a7%d9%84%d8%a3%d9%86/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>تغير طريقة التسجيل بدورات الـPHP</title>
		<link>http://www.HazemKhaled.com/blog/php/%d8%aa%d8%ba%d9%8a%d8%b1-%d8%b7%d8%b1%d9%8a%d9%82%d8%a9-%d8%a7%d9%84%d8%aa%d8%b3%d8%ac%d9%8a%d9%84-%d8%a8%d8%af%d9%88%d8%b1%d8%a7%d8%aa-%d8%a7%d9%84%d9%80php</link>
		<comments>http://www.HazemKhaled.com/blog/php/%d8%aa%d8%ba%d9%8a%d8%b1-%d8%b7%d8%b1%d9%8a%d9%82%d8%a9-%d8%a7%d9%84%d8%aa%d8%b3%d8%ac%d9%8a%d9%84-%d8%a8%d8%af%d9%88%d8%b1%d8%a7%d8%aa-%d8%a7%d9%84%d9%80php#comments</comments>
		<pubDate>Mon, 24 Dec 2007 10:24:02 +0000</pubDate>
		<dc:creator>حازم خالد</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[دورات تدريبية (كورسات)]]></category>
		<category><![CDATA[كورسات php]]></category>
		<category><![CDATA[دورات php]]></category>
		<category><![CDATA[دورات بي أتش بي]]></category>

		<guid isPermaLink="false">http://HazemKhaled.com/php/%d8%aa%d8%ba%d9%8a%d8%b1-%d8%b7%d8%b1%d9%8a%d9%82%d8%a9-%d8%a7%d9%84%d8%aa%d8%b3%d8%ac%d9%8a%d9%84-%d8%a8%d8%af%d9%88%d8%b1%d8%a7%d8%aa-%d8%a7%d9%84%d9%80php</guid>
		<description><![CDATA[وفقني الله للعمل مع مركز AXON لدورتين متتاليتين ودورة أخرى خاصة، أستفدت كثيراً هناك والحمد لله. من الأن إذا كنت ترغب في التسجيل في دورات الـPHP المعلن عنها بالمدونة فعليك الأتصال بي وطلب رقم الحساب وأيداع مبلغ رمزي لتأكيد الحجز ثم أرسال صورة الأيداع وسأقوم بالأتصال بك بإذن الله لتأكيد ميعاد بداية الدورة. لتفاصيل الدورة [...]]]></description>
			<content:encoded><![CDATA[<p>وفقني الله للعمل مع مركز AXON لدورتين متتاليتين ودورة أخرى خاصة، أستفدت كثيراً هناك والحمد لله.</p>
<p>من الأن إذا كنت ترغب في التسجيل في <a href="http://hazemkhaled.com/web-20/%d8%af%d9%88%d8%b1%d8%a9-php-%d8%a8%d8%a7%d9%84%d9%82%d8%a7%d9%87%d8%b1%d8%a9">دورات الـPHP</a> المعلن عنها بالمدونة فعليك <a href="http://hazemkhaled.com/contact-me/">الأتصال بي</a> وطلب رقم الحساب وأيداع مبلغ رمزي لتأكيد الحجز ثم أرسال صورة الأيداع وسأقوم بالأتصال بك بإذن الله لتأكيد ميعاد بداية الدورة.</p>
<p><a href="http://hazemkhaled.com/web-20/%d8%af%d9%88%d8%b1%d8%a9-php-%d8%a8%d8%a7%d9%84%d9%82%d8%a7%d9%87%d8%b1%d8%a9">لتفاصيل الدورة أضغط هنا</a><br />
يمكنك قرائة محتوى الدورة فقط من هنا<br />
<a href="http://hazemkhaled.com/wp-content/2007/04/php-v20.zip" target="_blank">html</a> أو <a href="http://hazemkhaled.com/wp-content/2007/04/php-v20.rtf" target="_blank">rtf</a> أو <a href="http://hazemkhaled.com/wp-content/2007/04/php-v20.doc" target="_blank">doc</a> أو <a href="http://hazemkhaled.com/wp-content/2007/04/php-v20.odt" target="_blank">odt</a> أو <a href="http://hazemkhaled.com/wp-content/2007/04/php-v20.pdf" target="_blank">pdf</a></p>
<p>جدول المحضرات (المرحلة الاولى)<br />
<a title="php_21-4-2007.xls" href="http://hazemkhaled.com/wp-content/2007/04/php_21-4-2007.xls" title="php_21-4-2007.xls">.xls</a> أو <a title="php_21-4-2007.ods" href="http://hazemkhaled.com/wp-content/2007/04/php_21-4-2007.ods" title="php_21-4-2007.ods">.ods</a> أو <a title="php_21-4-2007.pdf" href="http://hazemkhaled.com/wp-content/2007/04/php_21-4-2007.pdf" title="php_21-4-2007.pdf">.pdf</a> أو <a title="php_21-4-2007.html" href="http://hazemkhaled.com/wp-content/2007/04/php_21-4-2007.html" title="php_21-4-2007.html">.html</a></p>
<p>للتأكيد فالدورة مكونة من مرحلتين، كل مرحلة 30 ساعة، سعر المرحلة 600 جنية.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.HazemKhaled.com/blog/php/%d8%aa%d8%ba%d9%8a%d8%b1-%d8%b7%d8%b1%d9%8a%d9%82%d8%a9-%d8%a7%d9%84%d8%aa%d8%b3%d8%ac%d9%8a%d9%84-%d8%a8%d8%af%d9%88%d8%b1%d8%a7%d8%aa-%d8%a7%d9%84%d9%80php/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>عرض محتويات مجلد</title>
		<link>http://www.HazemKhaled.com/blog/php/opendir-and-readdir</link>
		<comments>http://www.HazemKhaled.com/blog/php/opendir-and-readdir#comments</comments>
		<pubDate>Fri, 09 Nov 2007 22:07:06 +0000</pubDate>
		<dc:creator>حازم خالد</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[closedir]]></category>
		<category><![CDATA[opendir]]></category>
		<category><![CDATA[readdir]]></category>

		<guid isPermaLink="false">http://HazemKhaled.com/php/%d8%b9%d8%b1%d8%b6-%d9%85%d8%ad%d8%aa%d9%88%d9%8a%d8%a7%d8%aa-%d9%85%d8%ac%d9%84%d8%af</guid>
		<description><![CDATA[جالي على الميل واحد بيطلب &#34;كنت اريد درس يشرح كيفية رفع صورة على مجلد وفتح المف وقراءة المجلد وعرض الصورة من المجلد فى مكان معين فى صفحة الويب&#34; وكان صديق بردو طلب منى الموضوع ده قريب فقول أكتبه هنا انا الي هقولو دلوقتي بسرعة هو القرائة من مجلد وبعدها أقول فلترة الصور منها 1 2 [...]]]></description>
			<content:encoded><![CDATA[<p>جالي على الميل واحد بيطلب &quot;كنت اريد درس يشرح كيفية رفع صورة على مجلد وفتح المف وقراءة المجلد وعرض الصورة من المجلد فى مكان معين فى صفحة الويب&quot;<br />
وكان صديق بردو طلب منى الموضوع ده قريب فقول أكتبه هنا</p>
<p>انا الي هقولو دلوقتي بسرعة هو القرائة من مجلد وبعدها أقول فلترة الصور منها</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$dir</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'/www/up/'</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// فتح المجلد او إيقاف البرنامج والتبليغ بأنه غير قادر</span>
<span style="color: #000088;">$dh</span> <span style="color: #339933;">=</span> <span style="color: #990000;">opendir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dir</span><span style="color: #009900;">&#41;</span> or <span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'غير قادر على فتح المجلدA'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// عمل تكرار على الناتج وطباعته</span>
<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span> <span style="color: #339933;">=</span> <span style="color: #990000;">readdir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dh</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">print</span> <span style="color: #000088;">$file</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'\n'</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #990000;">closedir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dh</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// أغلاق المجلد</span></pre></td></tr></table></div>

<p>وبالنسبة للفلترة هتكون بأن نتأكد من أمتداد الملفات أو من نوعية الملفات وهذا هو الأفضل</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// مصفوفة بأنواع الصور المتاح عرضها</span>
<span style="color: #000088;">$types</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
<span style="color: #0000ff;">'IMAGETYPE_GIF'</span><span style="color: #339933;">,</span>
<span style="color: #0000ff;">'IMAGETYPE_JPEG'</span><span style="color: #339933;">,</span>
<span style="color: #0000ff;">'IMAGETYPE_PNG'</span><span style="color: #339933;">,</span>
<span style="color: #0000ff;">'IMAGETYPE_BMP'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$dir</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'/www/up/'</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// فتح المجلد او إيقاف البرنامج والتبليغ بأنه غير قادر</span>
<span style="color: #000088;">$dh</span> <span style="color: #339933;">=</span> <span style="color: #990000;">opendir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dir</span><span style="color: #009900;">&#41;</span> or <span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'غير قادر على فتح المجلدA'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// عمل تكرار على الناتج وطباعته</span>
<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span> <span style="color: #339933;">=</span> <span style="color: #990000;">readdir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dh</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">in_array</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">exif_imagetype</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$types</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
<span style="color: #b1b100;">print</span> <span style="color: #000088;">$file</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'\n'</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #990000;">closedir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dh</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// أغلاق المجلد</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.HazemKhaled.com/blog/php/opendir-and-readdir/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>توقف دورات الـPHP لفترة غير معلومة</title>
		<link>http://www.HazemKhaled.com/blog/php/%d8%aa%d9%88%d9%82%d9%81-%d8%af%d9%88%d8%b1%d8%a7%d8%aa-%d8%a7%d9%84%d9%80php-%d9%84%d9%81%d8%aa%d8%b1%d8%a9-%d8%ba%d9%8a%d8%b1-%d9%85%d8%b9%d9%84%d9%88%d9%85%d8%a9</link>
		<comments>http://www.HazemKhaled.com/blog/php/%d8%aa%d9%88%d9%82%d9%81-%d8%af%d9%88%d8%b1%d8%a7%d8%aa-%d8%a7%d9%84%d9%80php-%d9%84%d9%81%d8%aa%d8%b1%d8%a9-%d8%ba%d9%8a%d8%b1-%d9%85%d8%b9%d9%84%d9%88%d9%85%d8%a9#comments</comments>
		<pubDate>Fri, 27 Jul 2007 16:57:08 +0000</pubDate>
		<dc:creator>حازم خالد</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[دورات تدريبية (كورسات)]]></category>
		<category><![CDATA[كورسات php]]></category>
		<category><![CDATA[دورات php]]></category>
		<category><![CDATA[دورات بي أتش بي]]></category>

		<guid isPermaLink="false">http://hazemkhaled.com/php/%d8%aa%d9%88%d9%82%d9%81-%d8%af%d9%88%d8%b1%d8%a7%d8%aa-%d8%a7%d9%84%d9%80php-%d9%84%d9%81%d8%aa%d8%b1%d8%a9-%d8%ba%d9%8a%d8%b1-%d9%85%d8%b9%d9%84%d9%88%d9%85%d8%a9</guid>
		<description><![CDATA[بسم الله الحمد لله أنتهيت من دورة ووالثانية أصبحت محاضرة واحدة بالأسبوع وأصبح الوقت أفضل ، ليس بكثير ولكنه أفضل والحمد لله, ولهذا مضتر لتوقف أستقبال دورات الـPHP لفترة غير معلومة.]]></description>
			<content:encoded><![CDATA[<p>بسم الله</p>
<p>الحمد لله أنتهيت من دورة ووالثانية أصبحت محاضرة واحدة بالأسبوع وأصبح الوقت أفضل ، ليس بكثير ولكنه أفضل والحمد لله, ولهذا مضتر لتوقف أستقبال دورات الـPHP لفترة غير معلومة.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.HazemKhaled.com/blog/php/%d8%aa%d9%88%d9%82%d9%81-%d8%af%d9%88%d8%b1%d8%a7%d8%aa-%d8%a7%d9%84%d9%80php-%d9%84%d9%81%d8%aa%d8%b1%d8%a9-%d8%ba%d9%8a%d8%b1-%d9%85%d8%b9%d9%84%d9%88%d9%85%d8%a9/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>من هنا وهناك PHP5 (تحديث)</title>
		<link>http://www.HazemKhaled.com/blog/php/%d9%85%d9%86-%d9%87%d9%86%d8%a7-%d9%88%d9%87%d9%86%d8%a7%d9%83-php5</link>
		<comments>http://www.HazemKhaled.com/blog/php/%d9%85%d9%86-%d9%87%d9%86%d8%a7-%d9%88%d9%87%d9%86%d8%a7%d9%83-php5#comments</comments>
		<pubDate>Tue, 27 Mar 2007 22:43:57 +0000</pubDate>
		<dc:creator>حازم خالد</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[php5]]></category>

		<guid isPermaLink="false">http://hazemkhaled.com/php5/%d9%85%d9%86-%d9%87%d9%86%d8%a7-%d9%88%d9%87%d9%86%d8%a7%d9%83-php5</guid>
		<description><![CDATA[][! الإنتقال الأمثل إلى PHP5 - ][ (نصائح و استراتيجيات ّ][ للأستاذ مازن عبد الله مليباري لعل الموضوع قديم بتاريخ 1-8-2004 لكنه مفيد php5 تتربع على عرش لغات برمجة الويب للأستاذ رفيع العتيبي وهو أيضاً بتاريخ 2-12-2004 PHP5 و قواعد البيانات للأستاذ هشام بتاريخ 16-5-2004 أيضاً يوجد كتاب جيد أسمه برمجة الكائنات في PHP5 وهو [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.swalif.net/softs/showthread.php?s=&amp;threadid=83467" target="_blank"><strong>][! الإنتقال الأمثل إلى PHP5 - ][ (نصائح و استراتيجيات ّ][</strong></a><br />
للأستاذ <a href="http://www.mazen.ws" target="_blank">مازن عبد الله مليباري</a> لعل الموضوع قديم بتاريخ 1-8-2004 لكنه مفيد</p>
<p><strong><a href="http://www.arabportal.net/news.php?action=view&amp;id=110" target="_blank">php5 تتربع على عرش لغات برمجة الويب</a></strong><br />
للأستاذ <a href="http://www.arabportal.net" target="_blank">رفيع العتيبي</a> وهو أيضاً بتاريخ 2-12-2004</p>
<p><a href="http://the-soft.net/?go=lessons&amp;action=dars&amp;id=19" target="_blank"><strong>PHP5 و قواعد البيانات</strong></a><br />
للأستاذ <a href="http://www.the-soft.net" target="_blank">هشام</a> بتاريخ 16-5-2004</p>
<p><strike>أيضاً يوجد كتاب جيد <strong>أسمه برمجة الكائنات في PHP5</strong> وهو للأستاذ صالح فائز جمال<br />
ولكني فقدت النسخة الألكترونية منه وراسلته لطلبها ووضعها هنا بإذن الله</strike></p>
<p>تحديث 31-3-2007 : مشكوراً قام الأستاذ صالح جمال بأرسال نسخة من كتاب بعد طلبها منه !<br />
يمكنك تحميل الكتاب من <a href="http://www.phpsimplicity.com/extDownloads.php?id=1">هنا</a> .<br />
شكراً أستاذ صالح جمال.</p>
<p>بالتوفيق</p>
]]></content:encoded>
			<wfw:commentRss>http://www.HazemKhaled.com/blog/php/%d9%85%d9%86-%d9%87%d9%86%d8%a7-%d9%88%d9%87%d9%86%d8%a7%d9%83-php5/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>هل سأفقد أكوادي عند الأنتقال من PHP4 إلى PHP5</title>
		<link>http://www.HazemKhaled.com/blog/php/%d9%87%d9%84-%d8%b3%d8%a3%d9%81%d9%82%d8%af-%d8%a3%d9%83%d9%88%d8%a7%d8%af%d9%8a-%d8%b9%d9%86%d8%af-%d8%a7%d9%84%d8%a3%d9%86%d8%aa%d9%82%d8%a7%d9%84-%d9%85%d9%86-php4-%d8%a5%d9%84%d9%89-php5</link>
		<comments>http://www.HazemKhaled.com/blog/php/%d9%87%d9%84-%d8%b3%d8%a3%d9%81%d9%82%d8%af-%d8%a3%d9%83%d9%88%d8%a7%d8%af%d9%8a-%d8%b9%d9%86%d8%af-%d8%a7%d9%84%d8%a3%d9%86%d8%aa%d9%82%d8%a7%d9%84-%d9%85%d9%86-php4-%d8%a5%d9%84%d9%89-php5#comments</comments>
		<pubDate>Tue, 27 Mar 2007 08:01:17 +0000</pubDate>
		<dc:creator>حازم خالد</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[php5]]></category>

		<guid isPermaLink="false">http://hazemkhaled.com/php5/%d9%87%d9%84-%d8%b3%d8%a3%d9%81%d9%82%d8%af-%d8%a3%d9%83%d9%88%d8%a7%d8%af%d9%8a-%d8%b9%d9%86%d8%af-%d8%a7%d9%84%d8%a3%d9%86%d8%aa%d9%82%d8%a7%d9%84-%d9%85%d9%86-php4-%d8%a5%d9%84%d9%89-php5</guid>
		<description><![CDATA[أبداً!! بل هي مجرد بعض التغيرات البسيطة التي غالباً لن تؤثر على أكوادك أو ما قمت بكتابته من قبل. في هذا المقال سوف أقوم بتوضيح الفروق (من حيث الكود) حتى أعمل على سرفر PHP5 بدون أي مشاكل. اولاً أحب أن أنبه أنه لا يمكن الأستمرار بالعمل تحت php4 وجهة نظر أعلم أنه يدورببالك قول وما [...]]]></description>
			<content:encoded><![CDATA[<table border="0" width="60%">
<tbody>
<tr>
<td valign="top"><span style="font-size: 40px; color: #ff0000;">أبداً!!</span></td>
<td>بل هي مجرد بعض التغيرات البسيطة التي غالباً لن تؤثر على أكوادك أو ما قمت بكتابته من قبل.<br />
في هذا المقال سوف أقوم بتوضيح الفروق (من حيث الكود) حتى أعمل على سرفر PHP5 بدون أي مشاكل.</td>
</tr>
</tbody>
</table>
<p><strong>اولاً أحب أن أنبه أنه لا يمكن الأستمرار بالعمل تحت php4</strong> وجهة نظر<br />
أعلم أنه يدورببالك قول وما هي الأسباب ؟؟<br />
الأسباب كثيرة ولكن لأن ليس هذا هو الموضوع فيمكنك فقط الأطلاع على <a href="http://www.php.net/ChangeLog-4.php" target="_blank">التحديثات بـ PHP4</a> و <a href="http://www.php.net/ChangeLog-5.php" target="_blank">التحديثات بـ PHP5</a> وستلاحظ أن php4 انتى أصداراتها الحقيقية (أقصد ما تم التطوير وأضافة الجديد للغة بشكل ملحوظ) ينتهي عند الأصدار 4.3.0 اما والتي تم أصدارها في أخر عام 2002 اما بعد ذلك فستجد أنه FixBug أو تحديث للمكتبات المرفقة مع PHP او أنك ستجد تحديث للـPEAR أو PECL !!!<br />
ولا نريد الخوض في هذا الموضوع أكثر من هذا فـPHP5 بقوتها وأمكانياتها تجبرنا على أستخدمها وسأطرح موضوع أخر لمناقشة هذه النقطة.</p>
<p><strong>الأن أكوادي على ستعمل بدون مشاكل مع PHP5</strong><br />
أولاً : هو ما يسمى بـold_function و cfunction وهي (على حسب ما فهمت من php.net) أنها الدوال القديمة الخاصة بـPHP/FI2 أو أنها أسلوب الدوال لهذه الأصدارة !! على العموم انا وجدت مثال كان زائر وضعه !!</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">old_function name <span style="color: #000088;">$param1</span><span style="color: #339933;">,</span> <span style="color: #000088;">$param2</span><span style="color: #339933;">,</span> <span style="color: #339933;">...,</span> <span style="color: #000088;">$paramn</span> <span style="color: #009900;">&#40;</span> code<span style="color: #339933;">;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
eg<span style="color: #339933;">.:</span>
old_function eq <span style="color: #000088;">$param</span><span style="color: #339933;">,</span> <span style="color: #000088;">$param</span><span style="color: #009900;">&#40;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$param1</span><span style="color: #339933;">==</span><span style="color: #000088;">$param2</span><span style="color: #009900;">&#41;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #339933;">&amp;</span>quot<span style="color: #339933;">;</span>equal<span style="color: #339933;">&amp;</span>quot<span style="color: #339933;">;;</span>
<span style="color: #b1b100;">else</span>
<span style="color: #b1b100;">echo</span> <span style="color: #339933;">&amp;</span>quot<span style="color: #339933;">;</span>not equal<span style="color: #339933;">&amp;</span>quot<span style="color: #339933;">;;</span>
<span style="color: #b1b100;">return</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$param1</span><span style="color: #339933;">==</span><span style="color: #000088;">$param2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
eq<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>ثانياًً : تطوير خرج بعض الدوال مثل خرج الدالتين <a href="http://www.php.net/manual/en/function.strrpos.php" target="_blank">strrpos</a> و <a href="http://www.php.net/manual/en/function.strrpos.php" target="_blank">strripos</a> (لا تخف لا يوجد دوال أخرى بها فروق) وهو تعديل تم من الأصدارة 4.0b3 وستلاحظ هذا في صفحة الدوال بالمنوال. وأيضاً دالة <a href="http://www.php.net/manual/en/function.ip2long.php" target="_blank">ip2long</a> أصبحت تعطي false في حالة أخال الـIP خطأ.</p>
<p>ثالثاً : تطوير في شكل التبليغ بالأخطاء والتنبيهات لأن php4 كانت فقيرة في وصف للأخطاء أو للتحذيرات خاصتاً مقارنتاً بـphp5.</p>
<p>مثلاُ : الدالة array_merge  إن لم يكن المدخل دالة فكانت لا تصدر خرج أم في PHP5 أصبحت تعطي تحذير <strong>E_WARNING</strong> .<br />
صدقني لن تلاحظ غير انك لن تقابل دالة في المنوال وتقف وتقول عفواً PHP5 فقط !</p>
<p>ملحوظة طبعاً هناك تغيرات تعتبر جزرية في OOP ولكنها بسيطه ولكن OOP المكتوبة على PHP4 تعمل ولا يوجد بها أدنى مشكلة !! وليس هذا فقط بل يمكنك توريث كائن مكتوب PHP4 لكائن مكتوب PHP5.</p>
<p>بالتوفيق</p>
]]></content:encoded>
			<wfw:commentRss>http://www.HazemKhaled.com/blog/php/%d9%87%d9%84-%d8%b3%d8%a3%d9%81%d9%82%d8%af-%d8%a3%d9%83%d9%88%d8%a7%d8%af%d9%8a-%d8%b9%d9%86%d8%af-%d8%a7%d9%84%d8%a3%d9%86%d8%aa%d9%82%d8%a7%d9%84-%d9%85%d9%86-php4-%d8%a5%d9%84%d9%89-php5/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>دوال التنقية الجديدة PHP Filter Functions</title>
		<link>http://www.HazemKhaled.com/blog/php/%d8%af%d9%88%d8%a7%d9%84-%d8%a7%d9%84%d8%aa%d9%86%d9%82%d9%8a%d8%a9-%d8%a7%d9%84%d8%ac%d8%af%d9%8a%d8%af%d8%a9-php-filter-functions</link>
		<comments>http://www.HazemKhaled.com/blog/php/%d8%af%d9%88%d8%a7%d9%84-%d8%a7%d9%84%d8%aa%d9%86%d9%82%d9%8a%d8%a9-%d8%a7%d9%84%d8%ac%d8%af%d9%8a%d8%af%d8%a9-php-filter-functions#comments</comments>
		<pubDate>Thu, 22 Mar 2007 03:19:09 +0000</pubDate>
		<dc:creator>حازم خالد</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[pecl]]></category>
		<category><![CDATA[php5]]></category>

		<guid isPermaLink="false">http://hazemkhaled.com/php5/%d8%af%d9%88%d8%a7%d9%84-%d8%a7%d9%84%d8%aa%d9%86%d9%82%d9%8a%d8%a9-%d8%a7%d9%84%d8%ac%d8%af%d9%8a%d8%af%d8%a9-php-filter-functions</guid>
		<description><![CDATA[بسم الله PHP5 وأعوانها كل يوم جديد !! Filter Functions هي مجموعة من الدوال التي من شأنها التأكد من نوعية البيانات ولكن بشكل متطور. متاحة من أول الأصدار 5.2.0 -للمزيد حول الجديد بهذا الأصدار &#8211; بالأضافة أنها متاحة في الأمتداد extension المسماه filter التابع لمجموعة أمتدادات PECL ويمكنك تحميل النسخة من هنا (Linux &#8211; Windows [...]]]></description>
			<content:encoded><![CDATA[<p>بسم الله</p>
<p><img src="http://talks.php.net/images/animated_elephant.gif" border="0" alt="" width="98" height="60" align="right" /> PHP5 وأعوانها<br />
كل يوم جديد !!</p>
<p><strong>Filter Functions<br />
</strong> هي مجموعة من الدوال التي من شأنها التأكد من نوعية البيانات ولكن بشكل متطور.<br />
متاحة من أول الأصدار 5.2.0 -<a href="http://www.php.net/ChangeLog-5.php#5.2.0" target="_blank">للمزيد حول الجديد بهذا الأصدار</a> &#8211; بالأضافة أنها متاحة في الأمتداد extension المسماه filter التابع لمجموعة أمتدادات <a href="http://pecl.php.net/" target="_blank">PECL</a> ويمكنك تحميل النسخة من هنا (<a href="http://pecl.php.net/get/filter">Linux</a> &#8211; <a href="http://pecl4win.php.net/ext.php/php_filter.dll">Windows</a> ).</p>
<p>أما عن الفائدة فالمثال خير دليل :-</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$email</span>	<span style="color: #339933;">=</span> <span style="color: #990000;">filter_input</span><span style="color: #009900;">&#40;</span>INPUT_POST<span style="color: #339933;">,</span> <span style="color: #0000ff;">'name'</span><span style="color: #339933;">,</span> FILTER_VALIDATE_EMAIL<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$age</span>	<span style="color: #339933;">=</span> <span style="color: #990000;">filter_input</span><span style="color: #009900;">&#40;</span>INPUT_POST<span style="color: #339933;">,</span> <span style="color: #0000ff;">'age'</span><span style="color: #339933;">,</span> FILTER_VALIDATE_INT<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$url</span>	<span style="color: #339933;">=</span> <span style="color: #990000;">filter_input</span><span style="color: #009900;">&#40;</span>INPUT_COOKIE<span style="color: #339933;">,</span> <span style="color: #0000ff;">'url'</span><span style="color: #339933;">,</span> FILTER_VALIDATE_URL<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$raw_msg</span><span style="color: #339933;">=</span> <span style="color: #990000;">filter_input</span><span style="color: #009900;">&#40;</span>INPUT_POST<span style="color: #339933;">,</span> <span style="color: #0000ff;">'msg'</span><span style="color: #339933;">,</span> FILTER_UNSAFE_RAW<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$options</span><span style="color: #339933;">=</span> <span style="color: #990000;">filter_input</span><span style="color: #009900;">&#40;</span>INPUT_GET<span style="color: #339933;">,</span> <span style="color: #0000ff;">'options'</span><span style="color: #339933;">,</span> FILTER_SANITIZE_SPECIAL_CHARS<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$data</span>	<span style="color: #339933;">=</span> <span style="color: #990000;">filter_var</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$user_data</span><span style="color: #339933;">,</span> FILTER_SANITIZE_STRING<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>أتركم مع المنوال : <a href="http://www.php.net/manual/en/ref.filter.php">Filter Functions</a></p>
<p>ملحوظة : المثال مأخوذ من مثال لرسمس في عرض له عن تقدم اللغة من سنة 1993 إلى 2007</p>
]]></content:encoded>
			<wfw:commentRss>http://www.HazemKhaled.com/blog/php/%d8%af%d9%88%d8%a7%d9%84-%d8%a7%d9%84%d8%aa%d9%86%d9%82%d9%8a%d8%a9-%d8%a7%d9%84%d8%ac%d8%af%d9%8a%d8%af%d8%a9-php-filter-functions/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

