الصفحة الرئيسية/ التقنية / لغة php : دورة كاملة للمبتدئين

لغة php : دورة كاملة للمبتدئين


for Large تمت الكتابة بواسطة : محمد

for Large for Mobile

لغة PHP وهي اختصار لـــ Personal Home Page Tools.

صممت لغة PHP خصيصًا لدعم وبناء صفحات وتطبيقات الويب.

بالتالي هي لغة برمجة متعددة الأغراض وتخدم مشاريع أخرى في بعض الأحيان.

مع ذلك كان أول ظهور لها عام 1995 على يد المهندس Rasmus Lerdorf.

لم تكن لغة PHP برمجية إذ كانت مجموعة من التطبيقات التي تم تطويرها بلغة بيرل.

فهي خلاصة من تطور لاحق قام به Lerdorf محققًا أول اتصال في قواعد البيانات عبر لغة سي.

إلا أن لغة سي كانت واسعة الأفق ولم تمكن المبرمجين من استخدامها على أنها لغة أساسية في عالم الويب.

لذا لجأ المطورون إلى تبني لغة جديدة وحصرية لصفحات الويب تحت تسمية PHP/FI.

 

 

 

متطلبات لغة PHP

  • خادم Apache لأنظمة ويندوز / Linux.
  • محررات البرمجة مثل Sublime أو Notepad++ أو PHP Storm.
  • حاسوب يعمل بنظام ويندوز (مستحسن).

يحتوي خادم Apache على عنوان المضيف المحلي في الشبكة المحلية.

ويوفر إمكانية زيارة صفحات الويب التي تم إعدادها مسبقًا.

كما يتضمن أيضًا ملفات اللغة بشكل تلقائي عند تنصيبه.

تعد محررات البرمجة ملفات لا علاقة لها باللغة على الإطلاق.

فهي بدورها أدوات تساعد على تغطية الصفحات المتعددة وتنسيق فقرات الشيفرة ليس إلا.

بينما في حال ما أراد المطور بعض المساعدة من المحرر في تصحيح واستدعاء المتغيرات.

حينئذ يمكن استخدام أداة PHP Storm وخاصة أنها إحدى المحررات القوية من jetBrains .

تدعم منصة بي اتش بي ستورم أكثر من لغة في قيادة صفحات الويب.

كما توفر للمطور عمليات استدعاء تلقائي للدوال Auto complete أثناء عمليات الكتابة.

 

1.تجهيز مشروع بي اتش بي

في دورتنا سنقوم باستخدام محرر PHP Storm والذي يعد واحدًا من أقوى المحررات في بناء المشاريع المتوسطة والكبيرة.

في حال استخدام Apache فإننا ندعو إلى عمل مجلد في سطح المكتب وتسميتها بأي من الأسماء القصيرة كالتالي:

لغة php

يتطلب نقل المجلد Tutorial إلى ملفات Root الخاصة بخادم Apache.

وذلك كي يتم الوصول إلى الصفحات عبر المضيف.

وعلى الرغم من أن البعض يقوم بإنشاء الصفحات في أماكن متعددة من القرص الصلب.

إلا أن ذلك من شأنه أن يعيق العديد من المهام مثل فشل الاتصال بقواعد البيانات أو فشل الوصول إلى الموقع عبر العنوان 127.0.0.1 أو النطاق.

الوصول إلى ملفات المشروع

 

2.فتح المحرر بي اتش بي ستورم

مع الأخذ بعين الإعتبار أننا نعمل على بيئة PHPStorm في هذه الدورة.

فإن أول خطوة سنقوم بها هي فتح المحرر بعد تنصيبه لتظهر لنا صفحة المحرر الترحيبية بالشكل التالي:

لغة php

 

  • نقوم باختيار Open ومن ثم نبحث في الكمبيوتر عن الامتداد التالي C:AppServwww.
  • ثم بعد ذلك نقوم باختيار ملف Tutorial الذي قمنا بنقله للتو.

لغة php

  •  عند الوصول إلى صفحة المحرر فإن كل ملف نقوم بإضافته سيعمل داخل مشروع Tutorial.

على سبيل المثال , يتوجب علينا إنشاء ملف index.php وهو الملف الذي يؤدي في نهاية المطاف إلى جميع الصفحات الأخرى.

ولا شك بأن جميع الخوادم تعمل على الوصول لصفحة index.php او index.html او index.aspx.

  • نقوم بالنقر على زر الفأرة الأيمن ومن ثم نختار New-> PHP File وتسميته بـ index.
  • عند ظهور صفحة index.php ولأول مرة يجب علينا مراعاة البادئة

 

3. طباعة جملة Hello World في لغة PHP

يمكن طباعة مجموعة من الجمل والنصوص داخل صفحة PHP.

وهي قابلة لتضمين علامات HTML بداخلها عبر أمر الطباعة.

نقوم الآن بعرض جملة الطباعة Hello World عن طريق الكود التالي:

<?php

echo'<h3>Hello World</h3>';


?>

 

يمكننا الوصول للمضيف المحلي عبر العنوان localhost ومن ثم اسم المشروع الذي قمنا بإضافته.

بالتالي نجد أن عبارة Hello World قد ظهرت بالفعل أثناء تضمين جملة الطباعة .

نعتبر أن لغة php تتعامل مع لغات HTML وغيرها على أنها نصوص أثناء الطباعة وإظهار النتائج.

على الرغم من أن جافا سكريبت تقوم بهذا الدور أيضًا وخاصة عند اجراء دوال ajax و json.

لكن يقف الأمر على كاهل إدارة الصفحات والتي تتبع بالكامل لبيئة عمل PHP.

تأخذ PHP دور كبير في السيطرة على تشكيل صفحات الويب وقد تأخذ المطور إلى ما هو أعمق من ذلك بكثير.

 

4. المتغيرات

المتغيرات في لغة PHP هي واحدة من أهم ما يمكن اختباره أثناء البرمجة.

فهي تأخذ منحى آخر في أداء المهام نظرا للدور الذي تقوم به.

وقد تختلف طريقة تعريف المتغيرات عن لغات البرمجة الأخرى.

على سبيل المثال يتم تعريف المتغير بصيغة عامة ودون الإشارة إلى نوعه ومن ثم يدرك المتصفح طبيعته وكينونته.

كذلك الأمر لو قمنا بحجز متغير من نوع integer أو string في الذاكرة.

فإن ذلك يتضمن اسم التعريف متبعوعًا بعلامة $ .

<?php

$var = 500; //int
$var2 = 2.5; //float
$var3 = "Hello"; //string
$var4 = true; //boolean

الآن لو قمنا بنسخ الشيفرة السابقة بمحرر الكود نجد أن اللغة تقبل جميع أنواع المتغيرات منها النصوص و العشرية والأعداد الصحيحة.

بالإضافة إلى الجمل المنطقية حيث أنها تقبل الحساب والمنطق حتى في بيئة عمل الويب.  

 

5. الجمل الشرطية 

تتعامل PHP مع الجمل الشرطية بطرق مختصرة وقوية في الإشارة للمنطق.

على سبيل المثال فإن المتغيرات يسبقها إشارة $ ومن ثم اسم المتغير. وتستوفي الشروط كما في اللغات الأخرى عند تعريفها.

سوف نعمل على تعريف متغير ما بقيمة من نوع integer ومن ثم نطبق شرط فيما لو كانت قيمته تساوي 100 أم لا.

<?php

   $x = 100;

   if($x == 100)
       echo("true");
   else
       echo("false");


?>

كما نلاحظ هنا أن الشرط خضع لاختبار قصير ومختصر والنتيجة على شاشة المتصفح تحقق الشرط الأول.

بالتالي قد يفيد استخدام الجمل الشرطية في حصر الاحتمالات وخاصة عند الاتصال بقواعد البيانات والتي ربما سنتطرق لها في دورة أخرى.  

 

6. المصفوفات

توفر لنا بيئة PHP العمل في مصفوفات تضم بعض العناصر وهي بدورها تحمل خصائص ومزايا رقمية أو نصية.

حيث تمكننا من إخضاع المصفوفة إلى عملية العد التنازلي واستخراج القيم المطلوبة.

بالتالي منطق البرمجة لا يختلف كثيرًا في عن بقية اللغات.

وخاصة أنها تتطلب منا ببعض الأحيان ادراج مصفوفة ما واختبار عناصرها بالترتيب أو بالاستهداف.

أيضًا يمكن أن تضم المصفوفات فهرس وعناوين في ذاكرة المتصفح وتقود بنا إلى فرض الشروط على صفحاتنا كما نريد.

<?php

 $names = array("Test1" , "Test2" , "Test3");

 echo $names[1];
?>

تظهر لنا النتيجة على المتصفح بطباعة العنصر الذي يحوي القيمة Test2.

وفي حال ما أردنا وضع المصفوفة في حلقة تكرارية فإن ذلك سيمنحنا المزيد من السيطرة على عناصرها.

فهي تشبه تمامًا التعامل مع المصفوفات مثل أي لغة أخرى.

مصفوفات أحادية

قد نتطرق لإعطاء بعض العناوين الفريدة لكل عنصر من عناصر المصفوفة والبعض يقدم على استخدام مصفوفات ثنائية.

بالتالي يتم الوصول لإحدى عناصرها عبر كلمة مفتاحية تشير إلى مكانها في الذاكرة.

ومع ذلك تستخدم تلك الحلول ببعض الحالات لكن من الممكن تطبيقها في المتصفح إن استدعى الأمر.

<?php

 $data= array("test1"=>"26" , "test2"=>"30" ,"test 3 "=>"16" );
    echo ($data["test1"]);
?>

كما نلاحظ وعند إجراء عملية الطباعة فقد تم اعتماد مفتاح العنصر في الذاكرة بدلاً من ترتيبه الرقمي.

وهذا من شأنه إجراء بعض المزايا الإضافية على المصفوفات وعناوينها في الذاكرة.

الأمر أقرب لأن يتشابه كثيرًا مع مؤشرات لغة سي.

 

7. الحلقات التكرارية

إن أهم ما يظهر مزايا لغة PHP هي الحلقات التكرارية حيث أنها تعمل بشكل موازٍ على جلب البيانات من قواعدها في الخادم.

وهناك منها الحلقة for و while.

في المثال التالي نجد أننا نتحكم بالمصفوفة في جلب البيانات على طريقة الحلقه for.

وسنعمل على النزول سطر تلو الآخر باستخدام br وهي واحدة من أشهر وسوم HTML.

<?php

$names = array("Test1" , "Test2" , "Test3");

$limit = count($names);
for($i = 0 ; $i <= $limit; $i++) {
    echo "$names[$i] <br/>";

}

?>

لا شك بأننا نحاول الوصول إلى حجم المصفوفة عبر الدالة count.

بالتالي فهي تجلب لنا أحجام المصفوفات كونها واحدة من الدوال المحجوزة في لغة php.

 

8. الدالة

تقوم الدالة بدورها المعتاد في جميع لغات البرمجة فهي أشبه بأن تكون كبسولة من الإجراءات البرمجية.

مع ذلك لم تترك لنا لغة PHP ذلك الأمر مبهمًا.

حيث عملت على تزويد المطور بخصائص استخدام الدوال في الشيفرة.

وعلى فرض أننا نريد عمل واستدعاء دالة محددة فكل ما علينا فعله هو التمعن في الشيفرة التالية:

<?php

 function test(){
    echo("Hello World");
 }

 test();

?>

يتم الإشارة إلى الدالة بالمصطلح function ومن ثم القيام بأي عملية نحتاجها في الكود.

وبالتالي عند مناداتها يتم الإشارة إليها باسمها مع القوسين.

أضف إلى ذلك أن دالة PHP تقبل عملية overloading التي يتم استخدامها بكافة لغات البرمجة المتنوعة.

<?php

 function test($x){
    echo $x;
 }

 test("Hello World");

?>

ببعض الأحيان قد نتطرق إلى استخدام الدالة من نوع recursion وهي تعمل على القيام بعمليات الحساب والمنطق أثناء إعادة القيمة.

<?php

 function test($x){
    $y = 10;
    return $x + $y;
 }

 $z = test(5);
 echo $z;

?>

نضع بالاعتبار أن القيمة المرجعة دائما يستقبلها متغير من نفس نوع القيمة.

حيث أن المتصفح يدرك ذلك الأمر دون الإشارة الى المتغير كما ذكرنا في درس المتغيرات.

 

9. العمليات الحسابية في لغة PHP

تقبل لغة PHP عددًا من العمليات الحسابية القياسية في لغات البرمجة مثل الجمع والطرح والضرب والقسمة.

كما تتيح لنا أيضًا استخدام معادلات باقي القسمة للتأثير على بعض القيم التي تكمن الحاجة إليها فيما بعد.

<?php

   $x = 10;
   $y = 4;

    echo $x+$y;
    echo $x-$y;
    echo $x*$y;
    echo $x/$y;
    echo $x%$y;


?>

على سبيل المثال قد نستخدم بعض العمليات المنطقية boolean في إدراج المتغيرات.

ومثال على ذلك دالة var_dump التي تعتبر بديلاً عن جملة الطباعة echo في العمليات المنطقية.

<?php

   $x = 10;
   $y = 4;

   var_dump($x > $y);   

//to print result in boolean we use var_dump instead of echo


?>

عند تتبع النتيجة على المتصفح تظهر لنا كلمة bool ومن ثم العملية المنطقية سواء أكانت true او false.

بالتالي تعتبر var_dump واحدة من الدوال التي تساعد المطور ببعض المهام الإضافية.

 

 الصفوف في لغة php

لا ننسى بأن لغة php هي واحدة من لغات الكائنات الموجهة , حيث أنها تعطي مزيدًا من عمليات التجريد أثناء العمل بالمشاريع الكبيرة.

لذا فهي لا تختلف عن اللغات الأخرى في هذا الجانب حيث تمكننا بذلك من تعريف صفوف وانشاء الكائنات من خلالها.

<?php
class Test{
  // Properties
  public $testName;
  public $testColor;

  // Methods
  function set_name($testName) {
    $this->testName= $testName;
  }
  function get_name() {
    return $this->testName;
  }
}
?>

 

 

 تضمين الصفحات

يعتبر تضمين الصفحات واحدًا من أقوى المهام التي تكمن الحاجة إليها عند بناء الموقع الإلكتروني.

مع ذلك فإن الأمر include يتيح للمطور الاتصال بصفحات ودوال أخرى وطلب بعض محتوياتها.

لا يختلف الأمر كثيرًا مع فضاء الأسماء أو حتى صفحات c++ المتعددة وهذا ما دعمته لغة php في بناء مواقع الويب.

بالتالي سوف نعمل على إضافة صفحة أخرى إلى جانب صفحة index.php ولتكن مثلا func.index .

وسنضع بها دالة بسيطة ليتم الاتصال بها من صفحة index.php.

<?php

//func.php

function data()
{
   echo 5 + 5;
}

نلاحظ أننا قمنا بعمل دالة مبسطة في صفحة func.php وذلك من شأنه طلبها تحت أي صفحة من المشروع.

وبما أن index.php هي صفحتنا في هذه الدورة سنعمل على تضمين مصادرنا بها والاتصال بالدالة عن طريق الأمر include.

<?php

include "func.php";

$x = 10;
$y = 4;

var_dump($x > $y);

//to print result in booleans we use var_dump rather than echo

echo '<br>';

echo 'This is a function we called from func.php page!';

echo '<br>';

data();


?>

عند التحقق من النتائج الظاهرة في المتصفح نجد أن الشيفرة القديمة لم تتأثر بعملية الاستدعاء.

وقد تظهر فوائد استخدامها واضحة عند تضمين قائمة الموقع بكافة الصفحات مثلاً أو تضمين footer كذلك.

ينطبق الاستدعاء أيضًا على اللغات الداعمة لمواقع الويب مثل جافا سكريبت أو css ولكن بــ syntax خاص بها.

 

12. التعامل مع النصوص

دوال النصوص هي إحدى أكثر الأدوات استخدامًا في التأثير على متغيرات المشروع.

فهي تقودنا إلى العديد من المهام مثل اقتطاع جزء من النص أو إخفاء جزء آخر منه.

أو حتى جلب عدد أحرف النص بقيمة من نوع integer.

وأما في حال أردنا استبدال بعض النصوص بكلمات أخرى فإن ذلك متاح عبر دالة str_replace كما في المثال التالي:

<?php

    $str = "Hello World";
    echo str_replace("Wor" , "***" , $str);

?>

تتيح لنا لغة PHP العديد من الدوال الأخرى على سبيل المثال دالة تشفير النصوص md5 في حال تشفير البيانات إلى قواعد البيانات.

وهي واحدة من الدوال التي يكثر استخدامها.

<?php

    $str = "Hello World";
    echo md5($str);

?>

أداة تشفير صيغة النصوص md5 واحدة من الدوال التي تعمل على حماية البيانات وخاصة عند تسجيل الدخول أو تغيير كلمة المرور.

في المثال التالي نجد دالة substr التي تقوم باقتطاع جزء من النص.

<?php

    $str = "Hello World";

    echo substr($str , 6);

?>

يفيد الرقم 6 بعدد وأماكن العناصر التي سيتم حجبها من الذاكرة عند طباعة المتغير.

ولا ننسى أن النصوص في لغات البرمجة ليست سوى مصفوفة كبيرة من الأحرف يتم تشكيلها وفقًا لدوال char متعددة الأغراض.

بالتالي قد تدعو الحاجة أحيانًا إلى معرفة عدد الحروف أو الحروف المتواجدة في النصوص المطبوعة أو المخزنة في متغيرات PHP.

<?php

    $str = "Hello World";
   echo strlen($str);

?>

 تقوم أداة strlen بحساب عدد الأحرف المتواجدة في المتغيرات ومن ثم ارجاعها على شكل قيمة من نوع integer.

 

13.الجلسات

تقوم الجلسات بدور فتح المتصفح وحفظ البيانات المجهزة عند زيارة الموقع أو الصفحة.

فهي بدورها عملية تشير إلى وجود الزائر على الموقع في الوقت الحالي.

على سبيل المثال عند تسجيل الدخول لأي موقع فإن جلسة العميل تبدأ ويتم إظهار بعض البيانات الخاصة بقواعد البيانات.

وذلك وفقا لقيود قام بوضعا المطور والتي غالبًا لا توفر معلومات محددة لحسابات أخرى.

وهي عامل أساسي في حماية قواعد البيانات أو حجب المشاركة عن المتطفلين.

تخدم جلسات الصفحة أغراضًا متعددة ليس بوسعنا حصرها في هذه الدورة.

لكن دورها الرئيسي يتركز في تخويل المستخدمين من التنقل بين الصفحات.

<?php
session_start();

if(!empty( $_SESSION['counter'])){
    $_SESSION['counter']++;
}else{
    $_SESSION['counter'] = 5;       //refresh the page to see the difference
}



echo $_SESSION['counter'];
?>

الدالة session_start تعمل على فتح الجلسة داخل المتصفح.

وتم اسنادها لقيمة من الأعداد الصحيحة وذلك لملاحظة مدى تأثيرها في صفحات الويب.

بالتالي وعند الدخول إلى الصفحة نستطيع استبدال القيمة 5 ليحل بدلا منها اسم المستخدم وتنفيذ بعض الشروط على بعض المستخدمين.

تفيد الجلسات بإنشاء بعض الحسابات وتقييدها ببعض الصلاحيات من وجهة نظر المبرمجين.

الخلاصة

  • نشكر وصولك لآخر سطر في هذه الدورة.
  • يمكن نسخ جميع سطور الشيفرة البرمجية ومحاولة تطبيقها على صفحات ويب أخرى.

المراجع
  1. PHP OOP ^ w3schools.
  2.  What PHP is ^ wikipedia.
  3.  الموقع الرسمي ^ php.

وقت النشر : 2023-02-04 18:45:27 ·

1    التصنيفات






2    مقالات من التقنية

يعتمد هذا الموقع على عرض الإعلانات في تحقيق الدخل ، نشكر تفهمكم الدائم ونتمنى لكم قضاء وقت رائع ... وشكراً :D .