1 مبادئ لارافيل Laravel 11: تعلم برمجة PHP

أتقن برمجة PHP مع هذا الدليل الشامل. مثالي للمطورين ذوي المستوى المتوسط الذين يسعون لتعزيز مهاراتهم.
مقدمة
PHP، أو المعالج السابق للنصوص الفائقة، هي لغة برمجة نصية قوية من جانب الخادم مصممة لتطوير الويب ولكنها تُستخدم أيضًا كلغة برمجة عامة. في هذا البرنامج التعليمي، سنغطي أساسيات PHP لمساعدتك على البدء في بناء تطبيقات ويب ديناميكية.
البدء مع PHP
لبدء البرمجة في PHP، تحتاج إلى إعداد بيئة تطوير. الطريقة الأكثر شيوعًا للقيام بذلك هي عن طريق تثبيت مجموعة خوادم محلية مثل XAMPP أو WAMP أو MAMP، والتي تشمل Apache وMySQL وPHP.
أساسيات بناء جمل PHP
تبدأ نصوص PHP بـ <?php
وتنتهي بـ ?>
. هنا مثال بسيط:
<?php
echo "مرحبا بالعالم!";
?>
المتغيرات
المتغيرات في PHP تمثل بإشارة الدولار تليها اسم المتغير. أسماء المتغيرات حساسة لحالة الأحرف.
<?php
$greeting = "مرحبا بالعالم!";
echo $greeting;
?>
أنواع البيانات
تدعم PHP أنواع بيانات مختلفة بما في ذلك السلاسل النصية، الأعداد الصحيحة، الأعداد العشرية، القيم المنطقية، المصفوفات، والكائنات.
<?php
$string = "مرحبا بالعالم!";
$int = 123;
$float = 123.45;
$bool = true;
$array = array("foo", "bar", "baz");
?>
تراكيب التحكم
تقدم PHP تراكيب تحكم متنوعة، مثل عبارات if، عبارات switch، والحلقات (for، while، do-while).
عبارة If
<?php
$number = 10;
if ($number > 0) {
echo "$number موجب";
} else {
echo "$number غير موجب";
}
?>
حلقة For
<?php
for ($i = 0; $i < 10; $i++) {
echo "$i ";
}
?>
الدوال
تُعلن الدوال في PHP باستخدام الكلمة المفتاحية function
. هنا مثال:
<?php
function sayHello($name) {
return "مرحبا، " . $name;
}
echo sayHello("العالم");
?>
المصفوفات
تُستخدم المصفوفات في PHP لتخزين قيم متعددة في متغير واحد. تدعم PHP المصفوفات المفهرسة والمرتبطة.
مصفوفة مفهرسة
<?php
$colors = array("أحمر", "أخضر", "أزرق");
echo $colors[0]; // يطبع: أحمر
?>
مصفوفة مرتبطة
<?php
$ages = array("بيتر" => 35, "بن" => 37, "جو" => 43);
echo $ages['بن']; // يطبع: 37
?>
بناء تركيبة مختصرة للمصفوفات
تسمح PHP باستخدام تركيبة مختصرة للمصفوفات، مما يقلل من الكتابة ويجعل الشفرة أكثر إيجازاً
<?php
$colors = ["أحمر", "أخضر", "أزرق"];
echo $colors[0]; // يطبع: أحمر
?>
المصفوفات متعددة الأبعاد
المصفوفات متعددة الأبعاد هي مصفوفات تحتوي على مصفوفات أخرى. إنها مفيدة لتخزين البيانات في شكل جدولي.
<?php
$multiArray = [
["جون", "دو", 25],
["جين", "سميث", 30],
["سام", "جونسون", 22]
];
echo $multiArray[0][0]; // يطبع: جون
echo $multiArray[1][1]; // يطبع: سميث
?>
دوال المصفوفات
توفر PHP العديد من الدوال المدمجة للعمل مع المصفوفات.
<?php
$colors = ["أحمر", "أخضر", "أزرق"];
array_push($colors, "أصفر"); // يضيف "أصفر" إلى نهاية المصفوفة
print_r($colors); // يطبع: Array ( [0] => أحمر [1] => أخضر [2] => أزرق [3] => أصفر )
?>
التعبيرات النمطية
التعبيرات النمطية هي أنماط تُستخدم لمطابقة مجموعات الأحرف في السلاسل. توفر PHP الدوال preg_match
، preg_match_all
، وpreg_replace
.
مثال على preg_match
<?php
$pattern = "/^foo(.*)/";
$subject = "foobar";
if (preg_match($pattern, $subject, $matches)) {
echo "تم العثور على تطابق!";
} else {
echo "لم يتم العثور على تطابق.";
}
?>
البرمجة كائنية التوجه (OOP) في PHP
البرمجة كائنية التوجه (OOP) هي نمط برمجة يستخدم الكائنات والفئات. تدعم PHP OOP مع الفئات، الكائنات، الوراثة، تعدد الأشكال، الواجهات، والسمات.
الفئات والكائنات
<?php
class Car {
public $make;
public $model;
public function __construct($make, $model) {
$this->make = $make;
$this->model = $model;
}
public function getCarInfo() {
return $this->make . " " . $this->model;
}
}
$car = new Car("تويوتا", "كورولا");
echo $car->getCarInfo();
?>
الوراثة
<?php
class Vehicle {
public $make;
public $model;
public function __construct($make, $model) {
$this->make = $make;
$this->model = $model;
}
}
class Car extends Vehicle {
public function getCarInfo() {
return $this->make . " " . $this->model;
}
}
$car = new Car("هوندا", "سيفيك");
echo $car->getCarInfo();
?>
تعدد الأشكال
يسمح تعدد الأشكال بمعاملة الكائنات من الفئات المختلفة ككائنات من فئة مشتركة.
<?php
class Vehicle {
public function startEngine() {
echo "تم تشغيل المحرك";
}
}
class Car extends Vehicle {
public function startEngine() {
echo "تم تشغيل محرك السيارة";
}
}
class Motorcycle extends Vehicle {
public function startEngine() {
echo "تم تشغيل محرك الدراجة النارية";
}
}
function startVehicleEngine(Vehicle $vehicle) {
$vehicle->startEngine();
}
$car = new Car();
$motorcycle = new Motorcycle();
startVehicleEngine($car); // يطبع: تم تشغيل محرك السيارة
startVehicleEngine($motorcycle); // يطبع: تم تشغيل محرك الدراجة النارية
?>
الواجهات
تسمح الواجهات لك بتحديد الدوال التي يجب على الفئة تنفيذها دون تحديد كيفية تنفيذ هذه الدوال.
<?php
interface VehicleInterface {
public function startEngine();
}
class Car implements VehicleInterface {
public function startEngine() {
echo "تم تشغيل محرك السيارة";
}
}
class Motorcycle implements VehicleInterface {
public function startEngine() {
echo "تم تشغيل محرك الدراجة النارية";
}
}
?>
السمات
السمات هي آلية لإعادة استخدام الكود في لغات الوراثة المفردة مثل PHP.
<?php
trait EngineTrait {
public function
startEngine() {
echo "تم تشغيل المحرك";
}
}
class Car {
use EngineTrait;
}
class Motorcycle {
use EngineTrait;
}
$car = new Car();
$motorcycle = new Motorcycle();
$car->startEngine(); // يطبع: تم تشغيل المحرك
$motorcycle->startEngine(); // يطبع: تم تشغيل المحرك
?>
الدوال المجهولة، الإغلاقات، ودوال الأسهم
الدوال المجهولة
الدوال المجهولة، المعروفة أيضًا بالإغلاقات، هي دوال بدون اسم محدد. تُستخدم غالبًا كدوال رد نداء.
<?php
$greet = function($name) {
return "مرحبا، " . $name;
};
echo $greet("العالم"); // يطبع: مرحبا، العالم
?>
الإغلاق
يمكن للإغلاقات أيضًا التقاط المتغيرات من النطاق المحيط.
<?php
$message = "مرحبا";
$greet = function($name) use ($message) {
return $message . "، " . $name;
};
echo $greet("العالم"); // يطبع: مرحبا، العالم
?>
دوال الأسهم
يمكن دوال الأسهم من بناء جملة أقصر للدوال المجهولة , تم تقديمها في PHP 7.4. كما أنها تقوم تلقائيًا بإلتقاط المتغيرات من النطاق المحيط.
<?php
$message = "مرحبا";
$greet = fn($name) => $message . "، " . $name;
echo $greet("العالم"); // يطبع: مرحبا، العالم
?>
العوامل
تشمل PHP مجموعة واسعة من العوامل لإجراء عمليات متنوعة.
العوامل الحسابية
<?php
$a = 10;
$b = 20;
echo $a + $b; // يطبع: 30
echo $a - $b; // يطبع: -10
echo $a * $b; // يطبع: 200
echo $a / $b; // يطبع: 0.5
echo $a % $b; // يطبع: 10
?>
عوامل المقارنة
<?php
$a = 10;
$b = 20;
var_dump($a == $b); // يطبع: bool(false)
var_dump($a != $b); // يطبع: bool(true)
var_dump($a > $b); // يطبع: bool(false)
var_dump($a < $b); // يطبع: bool(true)
?>
العوامل المنطقية
<?php
$a = true;
$b = false;
var_dump($a && $b); // يطبع: bool(false)
var_dump($a || $b); // يطبع: bool(true)
var_dump(!$a); // يطبع: bool(false)
?>
الوصول إلى قاعدة البيانات والاستعلامات
يمكن لـ PHP التفاعل مع قواعد البيانات مثل MySQL باستخدام الامتدادات مثل PDO (كائنات بيانات PHP) أو MySQLi.
الاتصال بقاعدة البيانات
<?php
$dsn = 'mysql:host=localhost;dbname=testdb';
$username = 'root';
$password = '';
try {
$db = new PDO($dsn, $username, $password);
echo "تم الاتصال بنجاح!";
} catch (PDOException $e) {
echo "فشل الاتصال: " . $e->getMessage();
}
?>
تنفيذ الاستعلامات
<?php
$sql = 'SELECT * FROM users';
foreach ($db->query($sql) as $row) {
print $row['name'] . "\t";
print $row['email'] . "\n";
}
?>
إدخال البيانات
<?php
$name = "جون دو";
$email = "john@example.com";
$sql = 'INSERT INTO users (name, email) VALUES (:name, :email)';
$stmt = $db->prepare($sql);
$stmt->bindParam(':name', $name);
$stmt->bindParam(':email', $email);
$stmt->execute();
echo "تم إنشاء سجل جديد بنجاح";
?>
الخاتمة
في هذا البرنامج التعليمي، قمنا بتغطية أساسيات PHP، بما في ذلك بناء الجملة، المتغيرات، أنواع البيانات، تراكيب التحكم، الدوال، المصفوفات (بما في ذلك المصفوفات متعددة الأبعاد)، التعبيرات النمطية، البرمجة كائنية التوجه (بما في ذلك الوراثة، تعدد الأشكال، الواجهات، والسمات)، الدوال المجهولة، الإغلاقات، دوال الأسهم، العوامل، والتعامل مع التفاعلات مع قاعدة البيانات. مع هذه الأساسيات، أنت في طريقك لأن تصبح متمكنًا في برمجة PHP. لمزيد من المعلومات التفصيلية، يرجى الرجوع إلى التوثيق الرسمي لـ PHP.
ناقش مشروعك معنا
نحن هنا للمساعدة في احتياجات تطوير الويب الخاصة بك. حدد موعدًا لمناقشة مشروعك وكيف يمكننا مساعدتك.
دعنا نجد أفضل الحلول لاحتياجاتك.