<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>PHP Reference</title>
	<atom:link href="http://phpreference.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://phpreference.wordpress.com</link>
	<description>مدونه متخصصه في تطوير المواقع</description>
	<lastBuildDate>Tue, 16 Jun 2009 16:27:58 +0000</lastBuildDate>
	<language>ar</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='phpreference.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>PHP Reference</title>
		<link>http://phpreference.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://phpreference.wordpress.com/osd.xml" title="PHP Reference" />
	<atom:link rel='hub' href='http://phpreference.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Clearing floats</title>
		<link>http://phpreference.wordpress.com/2009/06/16/clearing-floats/</link>
		<comments>http://phpreference.wordpress.com/2009/06/16/clearing-floats/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 16:27:58 +0000</pubDate>
		<dc:creator>phpreference</dc:creator>
				<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://phpreference.wordpress.com/?p=76</guid>
		<description><![CDATA[بسم الله الرحمن الرحيم سوف نتكلم اليوم عن خدعه من خدع css عن شئ مهم يدعي الـ clearing floats لمن لا يعرف الـ clearing floats ببساطه عندما يكون لدينا Box1 بداخلهBox2 له قيمه float سواء كانت right أو left فإن حدود Box1 أو الخلفيه له لن تتمد حتي تحتوي Box2 كما نتوقع قد يبدو الكلام أصعب من الواقع إذن [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phpreference.wordpress.com&amp;blog=3312590&amp;post=76&amp;subd=phpreference&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>بسم الله الرحمن الرحيم</p>
<p>سوف نتكلم اليوم عن خدعه من خدع <span lang="en-us">css </span>عن شئ مهم يدعي الـ clearing floats<br />
لمن لا يعرف الـ clearing floats<br />
ببساطه عندما يكون لدينا <span lang="en-us">Box1 </span>بداخله<span lang="en-us">Box2 </span>له قيمه <span lang="enus">float </span>سواء كانت <span lang="en-us">right </span>أو <span lang="en-us">left </span>فإن حدود <span lang="en-us">Box1 </span>أو الخلفيه له لن تتمد حتي تحتوي <span lang="en-us">Box2 </span>كما نتوقع<br />
قد يبدو الكلام أصعب من الواقع إذن تابع معي المثال التالي  :</p>
<div style="text-align:left;" dir="ltr" lang="en-us">
<pre class="brush: xml;">
&lt;div id=&quot;box1&quot;&gt;
	box1 !!!
&lt;div id=&quot;box2&quot;&gt;box2 !!&lt;/div&gt;
&lt;/div&gt;
</pre>
</div>
<div style="text-align:left;" dir="ltr" lang="en-us">
<pre class="brush: css;">
div#box1 {
	border: 3px solid blue;
	width: 300px;
	background-color: #C1C1FF;
	padding: 5px;
}

div#box2 {
	float: right;
	margin: 0;
	border: 3px solid red;
	width: 150px;
	height: 140px;
	background: #FFC6B3;
}
</pre>
</div>
<p>عند تنفيذ الأكواد ينتج الشكل التالي :<br />
<img class="alignnone size-full wp-image-84" src="http://phpreference.files.wordpress.com/2009/06/11.png?w=455&#038;h=279" alt="" width="455" height="279" /></p>
<p>أعتقد الأن أن المشكله قد وضحت وهي أن <span lang="en-us">Box1 </span>لا يتمدد ويحوي <span lang="en-us">Box2 </span><br />
معظم المطورين يتغلبون علي هذه المشكله ببساطه بإضافه <span lang="en-us">div</span>فارغ مع إعطائه القيمه clear:both  ليصبح الكود بالشكل التالي :</p>
<div style="text-align:left;" dir="ltr" lang="en-us">
<pre class="brush: xml;">
&lt;div id=&quot;box1&quot;&gt;
	box1 !!!
&lt;div id=&quot;box2&quot;&gt;box2 !!&lt;/div&gt;
&lt;div style=&quot;clear:both&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
</pre>
</div>
<p><img class="alignnone size-full wp-image-86" src="http://phpreference.files.wordpress.com/2009/06/12.png?w=455&#038;h=279" alt="" width="455" height="279" /></p>
<p>لكن يعيب هذه الطريقه أنها تجعل التصميم غير نظيف ويحتوي علي أكواد <span lang="en-us">XHTML </span>لافائده منها علاوه علي ذلك يوجد طريقه أسهل وأكثرإحترافيه<br />
تقوم هذه الطريقه علي إستخدام خاصيه <span lang="en-us">after </span>وهي خاصيه قياسيه في <span lang="en-us">css2 </span>ومدعومه من كافه المتصفحات الحديثه تستطيع من خلالها إضافه محتوي للصفحه عن طريق <span lang="en-us">css إذن جرب الأن هذا الكود :</span></p>
<div style="text-align:left;" dir="ltr" lang="en-us">
<pre class="brush: xml;">
&lt;div id=&quot;box1&quot; class=&quot;clearfix&quot;&gt;
	box1 !!!
&lt;div id=&quot;box2&quot;&gt;box2 !!&lt;/div&gt;
&lt;/div&gt;
</pre>
</div>
<div style="text-align:left;" dir="ltr" lang="en-us">
<pre class="brush: css;">
div#box1 {
	border: 3px solid blue;
	width: 300px;
	background-color: #C1C1FF;
	padding: 5px;
}

div#box2 {
	float: right;
	margin: 0;
	border: 3px solid red;
	width: 150px;
	height: 140px;
	background: #FFC6B3;
}

.clearfix:after {
    content: &quot;.&quot;;
    display: block;
    height: 0;
    clear: both;
    visibility: hidden;
}
</pre>
</div>
<p>هذا الكود يعمل علي كافه المتصفحات القياسيه IE8 FF2 FF3 FF3.5 safari chrome لكن ماذا عن IE6 و IE7 ؟<br />
أساساً IE6 IE7 لديهم خاصيه إزاله الـ <span lang="en-us">float </span>تلقائياً لكن يجب أن تكون قيمه <span lang="en-us">zoom </span>تساوي 1<br />
لذلك وللتأكد من أن الخدعه سوف تعمل علي جميع المتصفحات حتي المتصفح التاريخي <span lang="en-us">IE5.5 </span>نضيف الكود التالي :</p>
<div style="text-align:left;" dir="ltr" lang="en-us">
<pre class="brush: xml;">
&lt;!--[if IE]&gt;
&lt;style type=&quot;text/css&quot;&gt;
  .clearfix {
    zoom: 1;
    display: block;
 &lt;/style&gt;
&lt;![endif]--&gt;
</pre>
</div>
<p>الأن الكود يعمل علي جميع المتصفحات بدون زياده حرف في أكواد XHTML<br />
<a href="http://www.addthis.com/bookmark.php?v=20"><img src="http://s7.addthis.com/static/btn/lg-share-en.gif" alt="Bookmark and Share" width="125" height="16" /></a></p>
<p><a href="http://www.addthis.com/bookmark.php?v=20"></a></p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/phpreference.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/phpreference.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/phpreference.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/phpreference.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/phpreference.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/phpreference.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/phpreference.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/phpreference.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/phpreference.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/phpreference.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/phpreference.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/phpreference.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/phpreference.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/phpreference.wordpress.com/76/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phpreference.wordpress.com&amp;blog=3312590&amp;post=76&amp;subd=phpreference&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://phpreference.wordpress.com/2009/06/16/clearing-floats/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f4b49759c735aa9aca89bb6122e8423?s=96&#38;d=" medium="image">
			<media:title type="html">phpreference</media:title>
		</media:content>

		<media:content url="http://phpreference.files.wordpress.com/2009/06/11.png" medium="image" />

		<media:content url="http://phpreference.files.wordpress.com/2009/06/12.png" medium="image" />

		<media:content url="http://s7.addthis.com/static/btn/lg-share-en.gif" medium="image">
			<media:title type="html">Bookmark and Share</media:title>
		</media:content>
	</item>
		<item>
		<title>حمايه لوحه التحكم</title>
		<link>http://phpreference.wordpress.com/2009/02/22/%d8%ad%d9%85%d8%a7%d9%8a%d9%87-%d9%84%d9%88%d8%ad%d9%87-%d8%a7%d9%84%d8%aa%d8%ad%d9%83%d9%85/</link>
		<comments>http://phpreference.wordpress.com/2009/02/22/%d8%ad%d9%85%d8%a7%d9%8a%d9%87-%d9%84%d9%88%d8%ad%d9%87-%d8%a7%d9%84%d8%aa%d8%ad%d9%83%d9%85/#comments</comments>
		<pubDate>Sun, 22 Feb 2009 18:55:02 +0000</pubDate>
		<dc:creator>phpreference</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://phpreference.wordpress.com/?p=71</guid>
		<description><![CDATA[بسم الله الرحمن الرحيم هنتعرف اليوم علي كيفيه حمايه لوحه التحكم بدون إستخدام أي داله لحمايه المدخلات من SQL injection لكن الأول نعرف المشكله لو عندنا لوحه تحكم بسيطه ولانريد لأي أحد الدخول لها إلا مدير الموقع مثلاً هانعمل جدول بسيط أسمه admin مثلاً في ثلاث حقول هم id و name و password وهانعمل فورم بسيط HTML لإدخال المعلومات اللي هي الأسم وكلمه المرور طبعاً موضوعنا [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phpreference.wordpress.com&amp;blog=3312590&amp;post=71&amp;subd=phpreference&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>بسم الله الرحمن الرحيم</p>
<p>هنتعرف اليوم علي كيفيه حمايه لوحه التحكم بدون إستخدام أي داله لحمايه المدخلات من SQL injection لكن الأول نعرف المشكله</p>
<p>لو عندنا لوحه تحكم بسيطه ولانريد لأي أحد الدخول لها إلا مدير الموقع مثلاً هانعمل جدول بسيط أسمه <span lang="en-us">admin </span>مثلاً في ثلاث حقول <span lang="ar-eg">هم </span><span lang="en-us">id </span>و <span lang="en-us">name </span>و <span lang="en-us">password </span>وهانعمل فورم بسيط <span lang="en-us">HTML </span>لإدخال المعلومات اللي هي الأسم وكلمه المرور</p>
<p>طبعاً موضوعنا ليس الفورم ولكن صفحه معالجه البيانات الأتيه منه </p>
<p>غالباً ماتكون بالشكل التالي</p>
<div style="text-align:left;" dir="ltr" lang="en-us">
<pre class="brush: php;">
&lt;?php
$name = $_GET['name'];
$password = $_GET['password'];

$sql = &quot;SELECT * FROM admin WHERE name='&quot; .$name. &quot; and password='&quot; . $password.&quot;'&quot;;
if (mysql_num_rows(mysql_query($sql)) &gt; 0) {
	 // Redirect to controll panel
}

die('خطأ في تسجيل الدخول');
?&gt;
</pre>
</div>
<p>طبعاً تستطيع إسخدام أي داله لعد النتائج أو أستخراج النتائج لكن أين المشكله ؟ المشكله هو لو قام أحد الصبيه بإدخال المعلومات التاليه في الفورم<br />
الأسم : <span lang="en-us">heacker</span><br />
كلمه المرور : <span lang="en-us">pass&#8217; or 1=1</span><br />
فيصبح شكل الأستعلام كالتالي</p>
<div style="text-align:left;" dir="ltr" lang="en-us">
<pre class="brush: sql;">
SELECT * FROM admin WHERE name='hacker' and password='pass' or 1=1
</pre>
</div>
<p>طبعا سوف يدخله الأسكربت بكل سرور إلي لوحه التحكم وبعد تكرار هذه الحالات تنتشرالسمعه بأن لغه <span lang="en-us">PHP </span>ضعيفه من الناحيه الأمنيه <br />
إذن سأثبت لك أنك تستطيع حمايه لوحه التحكم بدون إستخدام ولا داله للحمايه سواء مبنيه في داخل <span lang="en-us">PHP </span>أو أحد الدوال الموجوده في أي Framework<br />
غير الكود للشكل التالي</p>
<div style="text-align:left;" dir="ltr" lang="en-us">
<pre class="brush: php;">
&lt;?php
$name = $_GET['name'];
$password = $_GET['password'];

$sql = 'SELECT * FROM admin WHERE name='.$name;
$result = mysql_query($sql);
if (mysql_num_rows($result)) &gt; 0) {
	while($row = mysql_fetch_assoc($result)) {
		if ($row['password'] === $password) {
			 // Redirect to controll panel
		}
	}

}
?&gt;
</pre>
</div>
<p>ماذا لو أدخل الصبي نفس البيانات السابقه أو أي أكواد أخري ؟ ببساطه لن يستطيع الدخول لماذا ؟ لأن المقارنه أصبحت تتم علي مستوي لغه البرمجه وليس علي مستوي قاعده البيانات<br />
لكن ماذا لو أراد أدخال إستعلامات أخري لقاعده البيانات ؟ علي الرغم من أن <span lang="en-us">mysql_query </span>لا تدعم الأستعلامات المتعدده نريد أن نمنعه  من مجرد إحتمال إدخال أي شئ لقاعده البيانات<br />
غير الكود للشكل التالي :</p>
<div style="text-align:left;" dir="ltr" lang="en-us">
<pre class="brush: php;">
&lt;?php
$name = $_GET['name'];
$password = $_GET['password'];

$sql = 'SELECT * FROM admin';
$result = mysql_query($sql);
if (mysql_num_rows($result)) &gt; 0) {
	while($row = mysql_fetch_assoc($result)) {
		if ($row['password'] === $password &amp;&amp; $row['name'] === $name) {
			 // Redirect to controll panel
		}
	}
}

die('خطأ في تسجيل الدخول');
?&gt;
</pre>
</div>
<p>إذن سوف لن يحلم بمجرد وجود فرصه لإدخال أيه أكواد للوحه التحكم</p>
<p>طبعاً في هذا الدرس لا أنصحك بعدم إستخدام دوال لتنظيف المدخلات ولكن الفكره أن المهم هو المبرمج وليس اللغه</p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/phpreference.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/phpreference.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/phpreference.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/phpreference.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/phpreference.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/phpreference.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/phpreference.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/phpreference.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/phpreference.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/phpreference.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/phpreference.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/phpreference.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/phpreference.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/phpreference.wordpress.com/71/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phpreference.wordpress.com&amp;blog=3312590&amp;post=71&amp;subd=phpreference&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://phpreference.wordpress.com/2009/02/22/%d8%ad%d9%85%d8%a7%d9%8a%d9%87-%d9%84%d9%88%d8%ad%d9%87-%d8%a7%d9%84%d8%aa%d8%ad%d9%83%d9%85/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f4b49759c735aa9aca89bb6122e8423?s=96&#38;d=" medium="image">
			<media:title type="html">phpreference</media:title>
		</media:content>
	</item>
		<item>
		<title>إنشاء الفئه class</title>
		<link>http://phpreference.wordpress.com/2009/02/01/%d8%a5%d9%86%d8%b4%d8%a7%d8%a1-%d8%a7%d9%84%d9%81%d8%a6%d9%87-class/</link>
		<comments>http://phpreference.wordpress.com/2009/02/01/%d8%a5%d9%86%d8%b4%d8%a7%d8%a1-%d8%a7%d9%84%d9%81%d8%a6%d9%87-class/#comments</comments>
		<pubDate>Sat, 31 Jan 2009 22:20:55 +0000</pubDate>
		<dc:creator>phpreference</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[دوره البرمجه كائنيه التوجه]]></category>

		<guid isPermaLink="false">http://phpreference.wordpress.com/?p=59</guid>
		<description><![CDATA[قمنا في مقدمه هذه الدوره بالتعرف علي مفاهيم البرمجه كائنيه التوجه ، سوف نقوم الأن بكتابه الكود الخاص بإنشاء الفئه class . قبل قراءه هذا الدرس يجب قراءه درس الصلاحيات Visibility لأننا سوف نحتاجه في هذا الدرس. سوف نقوم في هذا الدرس بكتابه كلاس تعليمي وسنسميه textBox وظيفته كتابه أي جمله نحددها في مربع بسيط . لإنشاء أي فئه يلزمنا ثلاث خطوات رئيسيه وهي : 1 &#8211; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phpreference.wordpress.com&amp;blog=3312590&amp;post=59&amp;subd=phpreference&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>قمنا في <a href="http://phpreference.wordpress.com/2009/01/30/%d9%85%d9%82%d8%af%d9%85%d9%87-%d8%af%d9%88%d8%b1%d9%87-%d8%a7%d9%84%d8%a8%d8%b1%d9%85%d8%ac%d9%87-%d9%83%d8%a7%d8%a6%d9%86%d9%8a%d9%87-%d8%a7%d9%84%d8%aa%d9%88%d8%ac%d9%87%d8%a8/">مقدمه </a>هذه الدوره بالتعرف علي مفاهيم البرمجه كائنيه التوجه ، سوف نقوم الأن بكتابه الكود الخاص بإنشاء الفئه <span lang="en-us">class</span> .<br />
قبل قراءه هذا الدرس يجب قراءه درس <a href="http://phpreference.wordpress.com/2009/01/31/visibility/" target="_self">الصلاحيات Visibility</a> لأننا سوف نحتاجه في هذا الدرس.<br />
سوف نقوم في هذا الدرس بكتابه كلاس تعليمي وسنسميه <span lang="en-us">textBox</span> وظيفته كتابه أي جمله نحددها في مربع بسيط .</p>
<p>لإنشاء أي فئه يلزمنا ثلاث خطوات رئيسيه وهي :</p>
<p><strong> 1 &#8211; كتابه الأكواد الازمه لتعريف الفئه</strong><br />
طبعاً في هذه الخطوه يلزم تسميه الفئه بأي أسم تريد ويكون الكود بالشكل التالي :</p>
<div style="text-align:left;" dir="ltr" lang="en-us">
<pre class="brush: php;">
&lt;?php
class أسم الفئه
{
	//تحديد خواص الفئه
	//تحديد أساليب الفئه
}
?&gt;
</pre>
</div>
<p>وإذا كانت الفئه فرعيه ترث خصائص وأساليب الفئه الأصليه يكون الكود بالشكل التالي :</p>
<div style="text-align:left;" dir="ltr" lang="en-us">
<pre class="brush: php;">
&lt;?php
class الفئه الفرعيه extends الفئه الأصليه
{
	//تحديد خواص الفئه
	//تحديد أساليب الفئه
}
?&gt;
</pre>
</div>
<p><strong>ملحوظه : </strong><br />
كلمه <span lang="en-us">extends </span> كلمه معرفه في لغه <span lang="en-us">PHP</span> ومعناها أن الفئه الفرعيه ترث خصائص وأساليب الفئه الأصليه وسوف نتناول هذا الجزء بالتفصيل في تدوينه قادمه عن الوراثه .</p>
<p><strong>2 &#8211; تحديد خواص &#8211; متغيرات &#8211; الفئه</strong><br />
ونقوم في هذه الخطوه بإنشاء خواص الفئه وتحديد صلاحيات كل خاصيه كما بالشكل التالي:</p>
<div style="text-align:left;" dir="ltr" lang="en-us">
<pre class="brush: php;">
&lt;?php
class أسم الفئه
{
	أسم الخاصيه    الصلاحيه;
}
?&gt;
</pre>
</div>
<p>الأن سوف نحدد خواص كلاسنا العزيز textBox :</p>
<div style="text-align:left;" dir="ltr" lang="en-us">
<pre class="brush: php;">
&lt;?php
class textBox
{
     public $message;
     protected $width = 150;
}
?&gt;
</pre>
</div>
<p>لقد قمنا بتحدد خاصيتين أحدهما message$ لحمل الرساله التي نريد عرضها ، والأخري width$ لتحديد عرض المربع النصي .</p>
<p><strong>ملحوظه : </strong><br />
يمكن تحديد قيمه الخاصيه &#8211; المتغير &#8211; عند تعريفها أو نترك قيمتها فارغه .</p>
<p><span lang="en-us"><strong>3</strong></span><strong> - تحديد أساليب &#8211; دوال &#8211; الفئه</strong><br />
وفي هذه الخطوه سوف نقوم بكتابه أساليب  الفئه  وهي كالدوال في البرمجه الهيكليه ولكن تكون مسبوقه بصلاحيه الأسلوب كما بالشكل التالي :</p>
<div style="text-align:left;" dir="ltr" lang="en-us">
<pre class="brush: php;">
&lt;?php
class أسم الفئه
{
	الصلاحيه function أسم الأسلوب()
	{
		// أكواد الأسلوب
	}
}
?&gt;
</pre>
</div>
<p>الأن نقوم بتحديد أساليب الفئه <span lang="en-us">textBox</span> وهذه الأساليب تقتصر علي الداله <span lang="en-us">display</span> لعرض المربع النصي ،  وبالتالي أصبحت الفئه متكامله كما بالشكل التالي :</p>
<div style="text-align:left;" dir="ltr" lang="en-us">
<pre class="brush: php;">
&lt;?php
class textBox
{
	public $message;
	protected $width = 150;  

	public function display()
	{
		echo
		'
&lt;div width=&quot;' . $this-&gt;width . '&quot;&gt;'
		. $this-&gt;message . '&lt;/div&gt;
';
	}
}
?&gt;</pre>
</div>
<p>الأن أصبح الكلاس متكامل ولكن ماذا عني كلمه this وكيف نستطيع إستخدام الكلاس ؟ هذا سوف نتناوله في التدوينه القادمه بإذن الله .</p>
<p>والسلام عليكم ورحمه الله</p>
<p>الدروس السابقه في هذه الدوره :<br />
<a href="http://phpreference.wordpress.com/2009/01/30/%d9%85%d9%82%d8%af%d9%85%d9%87-%d8%af%d9%88%d8%b1%d9%87-%d8%a7%d9%84%d8%a8%d8%b1%d9%85%d8%ac%d9%87-%d9%83%d8%a7%d8%a6%d9%86%d9%8a%d9%87-%d8%a7%d9%84%d8%aa%d9%88%d8%ac%d9%87%d8%a8/">مقدمه دوره البرمجه كائنيه التوجه</a><br />
<a href="http://phpreference.wordpress.com/2009/01/31/visibility/">الصلاحيات Visibility</a></p>
<p><a href="http://www.addthis.com/bookmark.php?v=20"><img style="border:0;" src="http://s7.addthis.com/static/btn/lg-share-en.gif" alt="Bookmark and Share" width="125" height="16" /></a><br />
<!-- AddThis Button END --></p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/phpreference.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/phpreference.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/phpreference.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/phpreference.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/phpreference.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/phpreference.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/phpreference.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/phpreference.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/phpreference.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/phpreference.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/phpreference.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/phpreference.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/phpreference.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/phpreference.wordpress.com/59/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phpreference.wordpress.com&amp;blog=3312590&amp;post=59&amp;subd=phpreference&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://phpreference.wordpress.com/2009/02/01/%d8%a5%d9%86%d8%b4%d8%a7%d8%a1-%d8%a7%d9%84%d9%81%d8%a6%d9%87-class/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f4b49759c735aa9aca89bb6122e8423?s=96&#38;d=" medium="image">
			<media:title type="html">phpreference</media:title>
		</media:content>

		<media:content url="http://s7.addthis.com/static/btn/lg-share-en.gif" medium="image">
			<media:title type="html">Bookmark and Share</media:title>
		</media:content>
	</item>
		<item>
		<title>ما الجديد في PHP 5.3 &#8211; الجزء الأول</title>
		<link>http://phpreference.wordpress.com/2009/01/31/new-php53-part1/</link>
		<comments>http://phpreference.wordpress.com/2009/01/31/new-php53-part1/#comments</comments>
		<pubDate>Sat, 31 Jan 2009 11:16:04 +0000</pubDate>
		<dc:creator>phpreference</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[متقدم]]></category>

		<guid isPermaLink="false">http://phpreference.wordpress.com/?p=54</guid>
		<description><![CDATA[بسم الله الرحمن الرحيم علي الرغم من أن PHP 5.3 مازالت في الإصدار Beta لكن رأيت أن أضع هذه التدوينه لتعريف المبرمجين العرب بأحدث الخصائص الجديده المتوفره في هذا الإصدار الرائع من PHP والذي يتضمن العديد من الخصائص التي كانت مقرر توافرها في PHP 6 قبل البدء في الموضوع حمل PHP 5.3  لمستخدمي ويندوز أو لمستخدمي لينكس [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phpreference.wordpress.com&amp;blog=3312590&amp;post=54&amp;subd=phpreference&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>بسم الله الرحمن الرحيم</p>
<p>علي الرغم من أن PHP 5.3 مازالت في الإصدار Beta لكن رأيت أن أضع هذه التدوينه لتعريف المبرمجين العرب بأحدث الخصائص الجديده المتوفره في هذا الإصدار الرائع من PHP والذي يتضمن العديد من الخصائص التي كانت مقرر توافرها في PHP 6</p>
<p>قبل البدء في الموضوع حمل PHP 5.3  <a href="http://windows.php.net/qa/" target="_self">لمستخدمي ويندوز</a> أو<a href="http://qa.php.net/" target="_self"> لمستخدمي لينكس</a> ثم قم بتنصيبها للتمكن من تجربه الخائص الجديده</p>
<p><strong>Late Static Bindings</strong><br />
 لنستطيع فهم هذه الخاصيه سوف ننشئ كلاس A وكلاس B التابع لكلاس A</p>
<div style="text-align:left;" dir="ltr" lang="en-us">
<pre class="brush: php;">
&lt;?php
class A {
    public static function who() {
        echo __CLASS__;
    }
    public static function test() {
        self::who();
    }
}

class B extends A {
    public static function who() {
         echo __CLASS__;
    }
}

B::test();
?&gt;
</pre>
</div>
<p>ماذا تتوقع نتيجه تنفيذ الإسكربت ؟ طبعاً سيقوم بطباعه <span lang="en-us">A </span>لماذا ؟ لأن أي شئ يعرف كـ <span lang="en-us">static </span>سيتم تنفيذه في مكانه أي داخل كلاس <span lang="en-us">A </span>حتي لو إستدعيناه من الكلاس <span lang="en-us">B  لأن <span lang="en-us">static </span>لا تعترف بقواعد الوراثه أي يتم تنفيذه بمعزل عن السياق <span lang="en-us">context .</span></span></p>
<p>إذن ما الجديد في <span lang="en-us">PHP 5.3 </span>؟ الجديد هو وضع كلمه <span lang="en-us">static </span>ليتم التنفيذ داخل السياق</p>
<div style="text-align:left;" dir="ltr" lang="en-us">
<pre class="brush: php;">
&lt;?php
class A {
    public static function who() {
        echo __CLASS__;
    }
    public static function test() {
        // لاحظ وضع كلمه static بدلاً من self
	static::who();
    }
}

class B extends A {
    public static function who() {
         echo __CLASS__;
    }
}

B::test();
?&gt;
</pre>
</div>
<p>ماذا تتوقع الأن ؟ سيتم طباعه <span lang="en-us">B </span>لأننا إستخدمنا  <span lang="en-us">static </span>بدلاً من <span lang="en-us">self </span>ليتم تنفيذ الداله في السياق وليس في مكان تعريفها</p>
<p><strong>داله  __callStatic<br />
<span style="font-weight:normal;">هذه الداله مثل داله <span lang="en-us">call__ </span>المتواجده من قبل في <span lang="en-us">PHP </span>وتنفذ عند إستدعاء داله غير موجوده ولكن هذه الداله تنفذ عند إستدعاء داله <span lang="en-us">static </span>غير موجوده </span></strong></p>
<p><strong><span style="font-weight:normal;">لهذه الداله أيضاً بارمتران الأول إسم الداله  المستدعاه والثاني مصفوفه تحمل بارمترات الداله المستدعاه</span></strong></p>
<div style="text-align:left;" dir="ltr" lang="en-us">
<pre class="brush: php;">
&lt;?php
class MethodTest {
	/**  As of PHP 5.3.0  */
	public static function __callStatic($name, $arguments) {
		// to prefix your methods
		$newName = 'My' . $name;
		call_user_func_array(
			array('MethodTest', $newName),
			$arguments );
	}

	public function MyRunTest($param) {
		echo $param;
	};

}
// لا حظ أن هذه الداله ليس لها وجود
MethodTest::RunTest('أهلاً');
// نتيجه الأسكربت : طباعه أهلاُ
?&gt;
</pre>
</div>
<p><strong><span lang="en-us">Namespaces</span></strong></p>
<p>سنتناولها في تدوينه قادمه نظراً لأنها تحتاج إلي كثير من الشرح</p>
<p><strong>ملحوظه : </strong><span style="color:#ff0000;">لكي تفهم هذه التدوينه وتكملتها القادمه يجب أن تكون ملم بقواعد <span lang="en-us">OOP </span>.<br />
</span></p>
<p>المراجع :<br />
<a href="http://www.php.net/docs.php">http://www.php.net/docs.php</a></p>
<p>أترككم في رعايه الله</p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/phpreference.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/phpreference.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/phpreference.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/phpreference.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/phpreference.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/phpreference.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/phpreference.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/phpreference.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/phpreference.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/phpreference.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/phpreference.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/phpreference.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/phpreference.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/phpreference.wordpress.com/54/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phpreference.wordpress.com&amp;blog=3312590&amp;post=54&amp;subd=phpreference&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://phpreference.wordpress.com/2009/01/31/new-php53-part1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f4b49759c735aa9aca89bb6122e8423?s=96&#38;d=" medium="image">
			<media:title type="html">phpreference</media:title>
		</media:content>
	</item>
		<item>
		<title>الصلاحيات Visibility</title>
		<link>http://phpreference.wordpress.com/2009/01/31/visibility/</link>
		<comments>http://phpreference.wordpress.com/2009/01/31/visibility/#comments</comments>
		<pubDate>Sat, 31 Jan 2009 00:08:59 +0000</pubDate>
		<dc:creator>phpreference</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[دوره البرمجه كائنيه التوجه]]></category>
		<category><![CDATA[private]]></category>
		<category><![CDATA[protectedd]]></category>
		<category><![CDATA[public]]></category>
		<category><![CDATA[Visibility]]></category>

		<guid isPermaLink="false">http://phpreference.wordpress.com/?p=43</guid>
		<description><![CDATA[بسم الله الرحمن الرحيم في الدرس الأول من دوره البرمجه كائنيه التوجه تعرفنا علي أن الكلاس يتكون من خصائص وأساليب سنتعرف في هذا الدرس بإذن الله علي الصلاحيات التي يمكن أن تأخذها هذه الخصائص والأساليب . في السابق بواسطه PHP4 كان من غير الممكن تحديد نطاق الخاصيه أو الإسلوب في الفئه وكان أغلب المبرمجين يقومون بكتابه تعليق فوق [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phpreference.wordpress.com&amp;blog=3312590&amp;post=43&amp;subd=phpreference&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>بسم الله الرحمن الرحيم</p>
<p>في <a title="مقدمه دوره البرمجه كائنيه التوجه" href="http://phpreference.wordpress.com/2009/01/30/%d9%85%d9%82%d8%af%d9%85%d9%87-%d8%af%d9%88%d8%b1%d9%87-%d8%a7%d9%84%d8%a8%d8%b1%d9%85%d8%ac%d9%87-%d9%83%d8%a7%d8%a6%d9%86%d9%8a%d9%87-%d8%a7%d9%84%d8%aa%d9%88%d8%ac%d9%87%d8%a8" target="_self">الدرس الأول</a> من دوره البرمجه كائنيه التوجه تعرفنا علي أن الكلاس يتكون من خصائص وأساليب سنتعرف في هذا الدرس بإذن الله علي الصلاحيات التي يمكن أن تأخذها هذه الخصائص والأساليب .</p>
<p><span lang="ar-eg">في السابق بواسطه PHP4 كان من غير الممكن تحديد نطاق الخاصيه أو الإسلوب في الفئه وكان أغلب المبرمجين يقومون بكتابه تعليق فوق كل متغير أو داله لمعرفه نطاقها .</span></p>
<p>في PHP5 يجب أن يعرف نطاق الخاصيه أو الإسلوب في الفئه بواسطه  إحدي الكلمات التاليه :</p>
<p><strong><span lang="en-us">public<br />
<span style="font-weight:normal;">وتعني أن الأسلوب أو الخاصيه عامه أي<span style="text-decoration:underline;"> يمكن إستخدامها داخل الفئه</span> و <span style="text-decoration:underline;">يمكن إستخدامه خارج الفئه</span>  و<span style="text-decoration:underline;"> يمكن توريثها إلي الفئات الفرعيه</span> .</span></span></strong></p>
<div style="text-align:left;" dir="ltr" lang="en-us">
<pre class="brush: php;">
&lt;?php
class user
{
	//مثال لخاصيه عام
	public $userName;

	// مثال لإسلوب عام
	public function doAnyThing($param) {
		// Do any thing ...
	}
}
?&gt;
</pre>
</div>
<p> </p>
<p><span lang="en-us"><strong>protected<br />
<span style="font-weight:normal;">وتعني أن الأسلوب أو الخاصيه<span lang="en-us"> </span><span lang="ar-eg">محميه</span> أي<span style="text-decoration:underline;"> يمكن إستخدامها داخل الفئه</span> أو<span style="text-decoration:underline;"> يمكن توريثها</span> إلي الفئات الفرعيه لكن <span style="text-decoration:underline;">لايمكن إستخدامها خارج الفئه </span>.</span></strong></span></p>
<div style="text-align:left;" dir="ltr" lang="en-us">
<pre class="brush: php;">
&lt;?php
class user
{
	//مثال لخاصيه محميه
	protected $email;
}
?&gt;
</pre>
</div>
<p> </p>
<p><span lang="en-us"><strong>private<br />
<span style="font-weight:normal;">وتعني أن الأسلوب أو الخاصيه خاصه أي<span style="text-decoration:underline;"> يمكن إستخدامها داخل الفئه</span> ولكن <span style="text-decoration:underline;"> لا يمكن توريثها</span> إلي الفئات الفرعيه و <span style="text-decoration:underline;">لايمكن  إستخدامها داخل الفئه</span>.</span></strong></span></p>
<div style="text-align:left;" dir="ltr" lang="en-us">
<pre class="brush: php;">
&lt;?php
class user
{
	//مثال لخاصيه خاصه
	private $pass;
}
?&gt;
</pre>
</div>
<p><strong>لنلخص الأن الثلاث تصاريح الممكن إعطائها للإسلوب أو الخاصيه</strong></p>
<table id="table1" style="border-collapse:collapse;" border="0" width="100%">
<tbody>
<tr>
<td width="60" align="middle" valign="top">التصريح</td>
<td width="122" align="middle" valign="top">إستخدامها داخل الفئه</td>
<td width="156" align="middle" valign="top">إستخدامها خارج الفئه</td>
<td align="middle" valign="top">توريثها للفئات الفرعيه</td>
</tr>
<tr>
<td align="middle"><span lang="en-us">public</span></td>
<td align="middle"><span style="color:#008000;">يمكن</span></td>
<td align="middle"><span style="color:#008000;">يمكن</span></td>
<td align="middle"><span style="color:#008000;">يمكن</span></td>
</tr>
<tr>
<td align="middle"><span lang="en-us">protected</span></td>
<td align="middle"><span style="color:#008000;">يمكن</span></td>
<td align="middle"><span style="color:#ff0000;">لايمكن</span></td>
<td align="middle"><span style="color:#008000;">يمكن</span></td>
</tr>
<tr>
<td align="middle"><span lang="en-us">private</span></td>
<td align="middle"><span style="color:#008000;">يمكن</span></td>
<td align="middle"><span style="color:#ff0000;">لايمكن</span></td>
<td align="middle"><span style="color:#ff0000;">لايمكن</span></td>
</tr>
</tbody>
</table>
<p> </p>
<p><strong>ملحوظات :</strong></p>
<ul>
<li><span lang="en-us">PHP5</span> مازالت تحتوي علي قواعد <span lang="en-us"><span lang="en-us">PHP4</span> فيمكنك مثلاُ تعريف الدوال بدون تحديد نطاقها ويمكن تعريف المتغيرات بواسطه كلمه <span lang="en-us">var</span> بدون تحديد نطاقها .</span></li>
<li>قامت <span lang="en-us">PHP5</span> بالمحافظه علي هذه القواعد حتي تستطيع البرامج التي كتبت بواسطه <span lang="en-us">PHP4</span> من العمل تحت هذا الأصدار ولكن إذا كنت تقوم بكتابه إسكربت جديد فقم بكتابته بقواعد <span lang="en-us">PHP5</span> الجديده وأترك  قواعد <span lang="en-us">PHP4 </span>الباليه !!</li>
<li>بعد إعطائك إحدي هذه التصاريح لخاصيه أو أسلوب ثم قمت بمخالفه هذه التصاريح سوف تقوم <span lang="en-us">PHP </span>بإعطائك رساله خطأ ثم توقف ترجمه الأسكربت ، لاحظ المثال التالي :</li>
</ul>
<div style="text-align:left;" dir="ltr" lang="en-us">
<pre class="brush: php;">
&lt;?php
class user
{
	//لاحظ أنه متغير محمي
	protected $userEmail;
} 

$newUser = new user; 

/*
هذا السطر سوف يصدر خطأ
لأننا قمنا بإستخدام متغير محميمن خارج الفئه
*/
echo $newUser-&gt;userEmail;
?&gt;
</pre>
</div>
<p>وهذه هي رساله الخطأ الناتجه :</p>
<div style="text-align:left;" dir="ltr" lang="en-us">
<pre class="brush: php;">
Fatal error: Cannot access protected property user::$userEmail in c:\wamp\www\code.php on line 14
</pre>
</div>
<p><strong>تمرين بسيط :<br />
<span style="font-weight:normal;">ماهو التصريح الواجب إعطائه للمتغير <span dir="ltr" lang="en-us"> $userEmail </span>حتي لايحدث خطأ ؟</span></strong></p>
<p><strong>ملحوظات :</strong></p>
<ul>
<li>الخاصيه <span lang="en-us">property</span><span lang="ar-eg"> في البرمجه كائنيه التوجه</span><span lang="en-us"> = </span><span lang="ar-eg">المتغير variable</span></li>
<li><span lang="ar-eg">الأسلوب </span><span lang="en-us">method  </span><span lang="ar-eg">في البرمجه كائنيه التوجه = الداله </span>function</li>
<li><span lang="ar-eg">الكلمه </span><span lang="en-us">class  </span><span lang="ar-eg">تترجم الفئه أو الكلاس فلا فرق بينهم</span></li>
<li><span lang="ar-eg">الكلمه </span><span lang="en-us">  Visibility </span><span lang="ar-eg">ترجمتها الصلاحيات إن كان هناك ترجمه أفضل للمعني وليس حرفياً أرجو تنبيهي</span></li>
</ul>
<p>والسلام عليكم ورحمه الله</p>
<p><a href="http://www.addthis.com/bookmark.php?v=20"><img style="border:0;" src="http://s7.addthis.com/static/btn/lg-share-en.gif" alt="Bookmark and Share" width="125" height="16" /></a></p>
<p><!-- AddThis Button END --></p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/phpreference.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/phpreference.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/phpreference.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/phpreference.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/phpreference.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/phpreference.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/phpreference.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/phpreference.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/phpreference.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/phpreference.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/phpreference.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/phpreference.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/phpreference.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/phpreference.wordpress.com/43/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phpreference.wordpress.com&amp;blog=3312590&amp;post=43&amp;subd=phpreference&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://phpreference.wordpress.com/2009/01/31/visibility/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f4b49759c735aa9aca89bb6122e8423?s=96&#38;d=" medium="image">
			<media:title type="html">phpreference</media:title>
		</media:content>

		<media:content url="http://s7.addthis.com/static/btn/lg-share-en.gif" medium="image">
			<media:title type="html">Bookmark and Share</media:title>
		</media:content>
	</item>
		<item>
		<title>مقدمه دوره البرمجه كائنيه التوجه</title>
		<link>http://phpreference.wordpress.com/2009/01/30/%d9%85%d9%82%d8%af%d9%85%d9%87-%d8%af%d9%88%d8%b1%d9%87-%d8%a7%d9%84%d8%a8%d8%b1%d9%85%d8%ac%d9%87-%d9%83%d8%a7%d8%a6%d9%86%d9%8a%d9%87-%d8%a7%d9%84%d8%aa%d9%88%d8%ac%d9%87%d8%a8/</link>
		<comments>http://phpreference.wordpress.com/2009/01/30/%d9%85%d9%82%d8%af%d9%85%d9%87-%d8%af%d9%88%d8%b1%d9%87-%d8%a7%d9%84%d8%a8%d8%b1%d9%85%d8%ac%d9%87-%d9%83%d8%a7%d8%a6%d9%86%d9%8a%d9%87-%d8%a7%d9%84%d8%aa%d9%88%d8%ac%d9%87%d8%a8/#comments</comments>
		<pubDate>Fri, 30 Jan 2009 18:26:48 +0000</pubDate>
		<dc:creator>phpreference</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[دوره البرمجه كائنيه التوجه]]></category>

		<guid isPermaLink="false">http://phpreference.wordpress.com/?p=39</guid>
		<description><![CDATA[بسم الله الرحمن الرحيم ماهي البرمجه كائنيه التوجه OOP ؟ تعتبر البرمجه كائنيه التوجه ليست مجرد إستخدام قواعد لغويه جديده وإنما تمثل طريقه وفكر جديد في بناء البرنامج . البرمجه كائنيه التوجه OOP تنظر للبرنامج علي أنه مجموعه من الكائنات أو مجموعه من البرامج الأصغر المنفصله عن بعضها البعض والتي تعمل معاً لتكوين البرنامج . ما هي فائدتها ؟ [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phpreference.wordpress.com&amp;blog=3312590&amp;post=39&amp;subd=phpreference&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>بسم الله الرحمن الرحيم</p>
<p><strong>ماهي البرمجه كائنيه التوجه <span lang="en-us">OOP </span>؟</strong><br />
تعتبر البرمجه كائنيه التوجه ليست مجرد إستخدام قواعد لغويه جديده وإنما تمثل طريقه وفكر جديد في بناء البرنامج .<br />
البرمجه كائنيه التوجه <span lang="en-us">OOP</span> تنظر للبرنامج علي أنه مجموعه من الكائنات أو مجموعه من البرامج الأصغر المنفصله عن بعضها البعض والتي تعمل معاً لتكوين البرنامج .</p>
<p><strong>ما هي فائدتها ؟</strong><br />
سهوله صيانه أي جزء من البرنامج دون تأثر باقي أجزاء البرنامج حيث يعتبر كل جزء برنامجاً صغيراً مستقلاً بذاته .<br />
إمكانيه إسخدام أي جزء من البرنامج في عمل برامج أخري ممايوفر الوقت والجهد . <br />
عزل الأكواد الخاصه بكل فئه عن باقي الأسكربت حتي لايقوم جزء من أجزاء البرنامج بإفساد البرنامج وإشاعه الفوضي عن طريق الخطأ .</p>
<p><strong>البرمجه كائنيه التوجه<span lang="en-us"> OOP</span> و <span lang="en-us">PHP5</span></strong><br />
كان أول دعم للبرمجه كائنيه التوجه في الأصدار <span lang="en-us">PHP3</span> ولكن كان الدعم بسيطاً للغايه .<br />
في الأصدار <span lang="en-us">PHP4</span> تم دعم معظم قواعد البرمجه كائنيه التوجه <span lang="en-us">OOP</span> . <br />
أم في الأصدار <span lang="en-us">PHP5</span> فقد حدث ماأسميه ثوره في لغه <span lang="en-us">PHP </span>حيث قدمت الكثير من القواعد والأدوات الجديده للبرمجه كائنيه التوجه ، حيث يعتبر هذا التطوير أهم تطوير حدث لـ <span lang="en-us">PHP</span> في هذه الأصدار .</p>
<p><strong>قبل البدء في تعلم الربمجه كائنيه التوجه يجب معرفه بعض المفاهيم الخاصه بها</strong></p>
<table id="table1" border="0" width="100%">
<tbody>
<tr>
<td width="80" valign="top">الفئه</td>
<td width="80" valign="top"><span lang="en-us">class</span></td>
<td valign="top">هي مجموعه من الأكواد تحتوي علي خصائص والأساليب التي تيح للكائن القيام بمهامه وهو كالعائله التي ينتمي إليها الكائن .</td>
</tr>
<tr>
<td width="80" valign="top">الكائن</td>
<td width="80" valign="top"><span lang="en-us">object</span></td>
<td valign="top">يعبر الكائن هو العنصر الأساسي في البرمجه كائنيه التوجه <span lang="en-us">OOP</span> وهذا الكائن مثل أي كائن حي مثلك أنت تقريبا!! له خصائص وأساليب -وظائف- مشتقه من الكلاس الذي ينتمي إليه .</td>
</tr>
<tr>
<td width="80" valign="top">الخصائص</td>
<td width="80" valign="top"><span lang="en-us">proprities</span></td>
<td valign="top">وهي الخصائص التي يتم تحديدها في في الفئه <span lang="en-us">class</span> ليتم تطبيقهاعلي كل الكائنات المشتقه من الفئه ( وهي مثل المغيرات في البرمجه الهيكليه ) .</td>
</tr>
<tr>
<td width="80" valign="top">الأساليب</td>
<td width="80" valign="top"><span lang="en-us">methods</span></td>
<td valign="top">وهي الأساليب التي يتم تحديدها في في الفئه <span lang="en-us">class</span> ليتم تطبيقهاعلي كل الكائنات المشتقه من الفئه ( وهي مثل الدوال في البرمجه الهيكليه ) .</td>
</tr>
<tr>
<td width="80" valign="top">الفئه الفرعيه</td>
<td width="80" valign="top"><span lang="en-us">child class</span></td>
<td valign="top">وهي الفئه الفرعيه التي ترث خصائص وأساليب الفئه الأصليه إضافه إلي خصائصها وأساليبها الخاصه .</td>
</tr>
<tr>
<td width="80" valign="top">الوراثه</td>
<td width="80" valign="top">inheritance</td>
<td valign="top">وهي أن الفئه الفرعيه ترث من الفئه الأصليه خصائصها وأساليبها .</td>
</tr>
<tr>
<td width="80" valign="top">التغليف</td>
<td width="80" valign="top">incapsulation</td>
<td valign="top">وهو عزل أكواد كل فئه <span lang="en-us">class </span>عن باقي الفئات وعن باقي الأسكربت داخل قوسين <span lang="en-us">{ </span>أكواد الفئه <span lang="en-us">}</span></td>
</tr>
<tr>
<td width="80" valign="top">الفئه المجرده</td>
<td width="80" valign="top"><span lang="en-us">abstract class</span></td>
<td valign="top">وهي الفئه التي لايمكن توليد كائنات منها مباشره ولكن يتم توريث خصائصها وأساليبها إلي فئه فرعيه .</td>
</tr>
</tbody>
</table>
<p>إذا أحسست أنك لم تفهم أي من المفاهيم السابقه فقط تابع الدوره فالأمر يبدو أصعب مما هو عليه في الواقع</p>
<p>أترككم في رعايه الله</p>
<p><!-- AddThis Button BEGIN --></p>
<p><a href="http://www.addthis.com/bookmark.php?v=20"><img style="border:0;" src="http://s7.addthis.com/static/btn/lg-share-en.gif" alt="Bookmark and Share" width="125" height="16" /></a><br />
<!-- AddThis Button END --></p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/phpreference.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/phpreference.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/phpreference.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/phpreference.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/phpreference.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/phpreference.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/phpreference.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/phpreference.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/phpreference.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/phpreference.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/phpreference.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/phpreference.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/phpreference.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/phpreference.wordpress.com/39/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phpreference.wordpress.com&amp;blog=3312590&amp;post=39&amp;subd=phpreference&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://phpreference.wordpress.com/2009/01/30/%d9%85%d9%82%d8%af%d9%85%d9%87-%d8%af%d9%88%d8%b1%d9%87-%d8%a7%d9%84%d8%a8%d8%b1%d9%85%d8%ac%d9%87-%d9%83%d8%a7%d8%a6%d9%86%d9%8a%d9%87-%d8%a7%d9%84%d8%aa%d9%88%d8%ac%d9%87%d8%a8/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f4b49759c735aa9aca89bb6122e8423?s=96&#38;d=" medium="image">
			<media:title type="html">phpreference</media:title>
		</media:content>

		<media:content url="http://s7.addthis.com/static/btn/lg-share-en.gif" medium="image">
			<media:title type="html">Bookmark and Share</media:title>
		</media:content>
	</item>
		<item>
		<title>مكتبه بي إتش بي القياسيه SPL &#8211; الجزء الأول</title>
		<link>http://phpreference.wordpress.com/2009/01/29/php_spl_part1/</link>
		<comments>http://phpreference.wordpress.com/2009/01/29/php_spl_part1/#comments</comments>
		<pubDate>Thu, 29 Jan 2009 10:00:10 +0000</pubDate>
		<dc:creator>phpreference</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[SPL]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[مكتبه بي إتش بي القياسيه]]></category>
		<category><![CDATA[البرمجه الكائنيه]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[بسم الله الرحمن الرحيم  سوف نبدأ اليوم في الحديث عن مكتبه مهمه أضيفت في الأصدار الخامس وهي مكتبه بي إتش بي القياسيه ماهي SPL ؟  هي مكتبه تأتي مع  PHP 5 بشكل تلقائي وهي إختصار اـ  (Standard PHP Library) تهدف هذه المكتبه إلي توفير كلاسات وواجهات interfaces تمكن المبرمج من الحصول علي أفضل المميزات في البرمجه الكائنيه [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phpreference.wordpress.com&amp;blog=3312590&amp;post=1&amp;subd=phpreference&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>بسم الله الرحمن الرحيم </p>
<p>سوف نبدأ اليوم في الحديث عن مكتبه مهمه أضيفت في الأصدار الخامس وهي مكتبه بي إتش بي القياسيه</p>
<p><strong>ماهي SPL ؟<br />
<span style="font-weight:normal;"> هي مكتبه تأتي مع  PHP 5 بشكل تلقائي وهي إختصار اـ  (Standard PHP Library) تهدف هذه المكتبه إلي توفير كلاسات وواجهات interfaces<span lang="en-us"> </span>تمكن المبرمج من الحصول علي أفضل المميزات في البرمجه الكائنيه التوجه <span lang="en-us">OOP </span>كما تهدف إلي حل المشاكل القياسيه أو المعتاده في البرمجه بالكائنات .</span></strong></p>
<p><strong>التنصيب<span style="font-weight:normal;"><br />
تأتي هذه المكتبه بشكل تلقائي مع <span lang="en-us">PHP 5 </span>ولا تحتاج إلي أي مكتبات إضافيه أو إعدادات .</span></strong></p>
<p><strong>دوال المكتبه</strong></p>
<p><strong>spl_autoload_register<br />
<span style="font-weight:normal;">تقوم هذه الداله بتسجيل داله أخري  للقيام بعمليه التحميل التلقائي للكلاسات  بدلأً من داله <span lang="en-us">autoload__<br />
في السابق كنا نستخدم الداله  <span lang="en-us">autoload__</span><span lang="ar-eg"> للتحميل التلقائي للكلاسات لكن ماذا إذا كنا نريد إستخدام داله بإسم أخر مكان داله </span> <span lang="en-us">autoload__</span></span></span></strong></p>
<p>لا حظ المثال التالي</p>
<div style="text-align:left;" dir="ltr" lang="en-us">
<pre class="brush: php;">
// Now Loader::anyName() is registered
spl_autoload_register(array('Loader', 'anyName');
class Loader
{
	public static function anyName($className)
	{
		require 'lib\\' . $className . '.php';
	}
}
</pre>
</div>
<p>الأن أصبحت الداله <span lang="en-us">Loader::anyName </span>هي الداله المسئوله عن التحميل التلقائي للكلاسات</p>
<p><strong>spl_autoload_functions<br />
<span style="font-weight:normal;">تعيد هذه الداله مصفوفه تشمل كل الدوال المسجله كــ <span lang="ar-eg"> </span> <span lang="en-us">autoload__  وإذا لم توجد دوال تعيد مصففوفه فارغه<br />
لا تأخذ هذه الداله أي بارمترات</span></span></strong></p>
<p><strong>spl_autoload_call</strong><br />
تحاول هذه الداله هذه الداله البحث عن الكلاس وتحميله عن طريق إستدعاء الداله  المسجله كــ <span lang="ar-eg"> </span> <span lang="en-us">autoload__<br />
لهذه الداله بارمتر واحد وهو إسم الكلاس المراد البحث عنه وتحميله<br />
لاحظ أن هذه الداله عديمه الفائده حيث بجرد أن تعرف داله كــ <span lang="ar-eg"> </span> <span lang="en-us">autoload__  سوف يقوم محرك اللغه بإستدعاء هذه الداله أوتوماتيكياً </span></span></p>
<p><span lang="en-us">سوف نستكمل في  الدرس الثاني باقي دوال هذه المكتبه .</span></p>
<p><span lang="en-us">والسلام عليكم </span></p>
<p><!-- AddThis Button BEGIN --><br />
<a href="http://www.addthis.com/bookmark.php?v=20"><img style="border:0;" src="http://s7.addthis.com/static/btn/lg-share-en.gif" alt="Bookmark and Share" width="125" height="16" /></a><br />
<!-- AddThis Button END --></p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/phpreference.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/phpreference.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/phpreference.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/phpreference.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/phpreference.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/phpreference.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/phpreference.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/phpreference.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/phpreference.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/phpreference.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/phpreference.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/phpreference.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/phpreference.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/phpreference.wordpress.com/1/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=phpreference.wordpress.com&amp;blog=3312590&amp;post=1&amp;subd=phpreference&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://phpreference.wordpress.com/2009/01/29/php_spl_part1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f4b49759c735aa9aca89bb6122e8423?s=96&#38;d=" medium="image">
			<media:title type="html">phpreference</media:title>
		</media:content>

		<media:content url="http://s7.addthis.com/static/btn/lg-share-en.gif" medium="image">
			<media:title type="html">Bookmark and Share</media:title>
		</media:content>
	</item>
	</channel>
</rss>
