نتائج البحث

اذهب إلى التنقل اذهب إلى البحث

التابع ConfigParser.get()‎‎ في بايثون

يجلب التابع الخيار المحدّد من القسم المعطى. البنية العامة get(section, option, *, raw=False, vars=None[, fallback]) ‎المعاملات ‎section اسم القسم الذي سيجلب التابع الخيار منه. option قيمة الخيار المراد جلبه. يبحث التابع عن قيمة المعامل option في vars (إن كان متوفّرًا) ثم في section ثم في DEFAULTSECT. raw يوسّع التابع جميع عمليات الاستيفاء التي تستخدم الرمز '%' في القيمة المعادة إلا إذا كان إذا أخذ المعامل raw القيمة True. vars معامل اختياري، يجب أن تكون قيمته قاموسًا. fallback في حال عدم ...

التابع ConfigParser.getint()‎‎ في بايثون

تابع مساعد وظيفته تحويل الخيار المعطى في القسم المحدّد إلى عدد صحيح. البنية العامة getint(section, option, *, raw=False, vars=None[, fallback]) ‎المعاملات ‎راجع التابع get()‎ للمزيد من التفاصيل حول المعاملات raw و vars و fallback. القيمة المعادة يعيد التابع قيمة الخيار الذي يجلبه بعد تحويله إلى عدد صحيح. أمثلة يبين المثال التالي طريقة عمل التابع: >>> import configparser >>> config = configparser.ConfigParser() >>> config.read('config.cfg') ['config.cfg'] >>> config.getint('topsecret.server.com', 'Port') 50022 انظر أيضًا التابع get()‎: يجلب التابع الخيار المحدّد من القسم المعطى. التابع getfloat()‎: تابع مساعد وظيفته تحويل ...

التابع ConfigParser.getfloat()‎‎ في بايثون

تابع مساعد وظيفته تحويل الخيار المعطى في القسم المحدّد إلى عدد عشري ذي فاصلة عائمة. البنية العامة getfloat(section, option, *, raw=False, vars=None[, fallback]) ‎المعاملات ‎راجع التابع get()‎ للمزيد من التفاصيل حول المعاملات raw و vars و fallback. القيمة المعادة يعيد التابع قيمة الخيار الذي يجلبه بعد تحويله إلى عدد عشري ذي فاصلة عائمة. أمثلة يبين المثال التالي طريقة عمل التابع: >>> import configparser >>> config = configparser.ConfigParser() >>> config.read('config.cfg') ['config.cfg'] >>> config.getfloat('topsecret.server.com', 'php_version') 7.1 انظر أيضًا التابع get()‎: يجلب التابع الخيار المحدّد من القسم المعطى. ...

التابع ConfigParser.getboolean()‎‎ في بايثون

تابع مساعد وظيفته تحويل الخيار المعطى في القسم المحدّد إلى قيمة منطقية (بوليانية). البنية العامة getboolean(section, option, *, raw=False, vars=None[, fallback]) ‎المعاملات ‎راجع التابع get()‎ للمزيد من التفاصيل حول المعاملات raw و vars و fallback. القيمة المعادة يعيد التابع قيمة الخيار الذي يجلبه بعد تحويله إلى قيمة منطقية (بوليانية). أمثلة يبين المثال التالي طريقة عمل التابع: >>> import configparser >>> config = configparser.ConfigParser() >>> config.read('config.cfg') ['config.cfg'] >>> config.getboolean('topsecret.server.com', 'ForwardX11') False >>> config.getboolean('topsecret.server.com', 'Compression') True انظر أيضًا التابع get()‎: يجلب التابع الخيار المحدّد من القسم المعطى. التابع getint()‎: ...

التوجيه (Routing) في Laravel

التوجيه الأساسي تقبل أغلب مسارات Laravel الأساسيّة مُتغّيرين: رابط URI  و نطاق مغلق Closure مما يُوفّر طريقة بسيطة ومعبّرة جدّا لتعريف المسارات (routes): Route::get('foo', function () { return 'Hello World'; }); ملفات المسار الإفتراضيّة كل مسارات Laravel مُعرّفة في ملفات مساراتك الموجودة في المجلّد routes. يُحمّل إطار العمل كل هذه الملفّات تلقائيًا. يعرّف الملف routes/web.php كل المسارات المُخصّصة لواجهة الويب. مجموعة البرمجيّات الوسيطة web معيّنة على كل المسارات وتوفّر خاصيّات مثل حالة الجلسة (session state) والحماية CSRF. المسارات ...

الأحداث (Events) في Laravel

مقدمة توفّر أحداث Laravel تطبيق مراقب بسيط  يسمح بالإشتراك والاستماع لعدّة أحداث يطلقها التطبيق. تُخزَّن أصناف الأحداث في الدليل app/Events، في حين توجد المنصتات في app/Listeners. لا تقلق إن لم تجد هذه الدلائل في التطبيق إذ تُصنع حين تولّد أحداثًا و منصتات باستعمال أوامر artisan. الأحداث طريقة ممتازة لفك ارتباط عدّة عناصر من التطبيق حيث يمكن أن يكون لحدث واحد عدّة منصتات منفصلة كليا عن بعضها البعض. مثلًا، قد تريد إرسال إعلان slack للمستخدم كلما شحن طلب. بدل ربط معالجة ...

المعدلات في رابط الكائنات بالعلاقات Eloquent

مقدمة تمكّنك المعدّلات والموصّلات من تنسيق قيم خاصيّات Eloquent عند استردادها أو تعيينها على كائنات النماذج. مثلًا، يمكنك استخدام مشفّر Laravel لتشفير قيمة ما أثناء تخزينها بقاعدة لًا، ومن ثمّ فك تشفيرها تلقائيًّا عند استردادها من نموذج Eloquent. إضافةً إلى المعدلات والموصلات الافتراضية، يمكّنك Eloquent من التحويل التلقائي للخاصيات الزمنية إلى كائنات من الصنف Carbon أو حتى تحويل الخاصيات النصية إلى كائنات JSON. المعدلات والموصلات تعريف الموصل لتعريف موصل ما، عرف التابع getFooAttribute على صنف نموذجك حيث Foo هو اسم ...

السلسلة في رابط الكائنات بالعلاقات Eloquent

مقدمة عند بناء واجهات JSON APIs، تحتاج معظم الأوقات إلى تحويل نماذجك وعلاقاتها إلى مصفوفات أو كائنات JSON. يزود Eloquent بمجموعة من التوابع المساعدة لهذه التحويلات، إضافةً إلى التحكم بالحقول التي يجب تضمينها في التحويلات. سلسلة النماذج والمجموعات السلسلة لمصفوفات لتحويل نموذج وعلاقاته المحمّلة لمصفوفة، يمكنك استخدام التابع toArray. إن هذا التابع تعاودي، لذلك ستُحوّل كل الحقول وكل العلاقات (وعلاقات العلاقات) إلى مصفوفات: $user = App\User::with('roles')->first(); return $user->toArray(); يمكنك أيضًا تحويل مجموعة كاملة من النماذج إلى مصفوفة: $users = App\User::all(); return $users->toArray(); السلسلة ...

تزييف الأحداث لأغراض الاختبار Mocking في Laravel

مقدمة عند اختبار تطبيقات Laravel، قد تحتاج إلى "تقليد الأصل" لبعض جوانب تطبيقك، حتى لا يتم تنفيذها بشكل فعلي في اختباراتك. على سبيل المثال، عند اختبار متحكم ما يقوم بإرسال حدث، قد تحتاج إلى تقليد الأصل لمنصت الأحداث حتى لا تشغّل فعليًا أثناء الاختبار. يساعدك ذلك على اختبار رد المتحكم فقط دون الحاجة للقلق حيال تنفيذ منصتي الأحداث، نظرًا لكونها مستقلة في حالات اختباراتها. يزوّد Laravel بمجموعة من المساعدات لتقليد أصل الأحداث والأعمال ‎(Jobs)‎ والواجهات الساكنة ‎(Facades‎)‎. تزود هذه المساعدات ...

مقدمة إلى رابط الكائنات بالعلاقات Eloquent

مقدمة يزود رابط الكائنات بالعلاقات Eloquent ORM المضمّن في Laravel تنفيذًا بسيطًا من أجل قواعد البيانات التي تتعامل مع الـ ActiveRecord. كل جدول في قاعدة البيانات يقابله نموذج (Model) يُستخدم للتفاعل مع هذا الجدول. تمكّنك النماذج من تنفيذ الاستعلامات على البيانات الموجودة في الجداول، إضافةً إلى إضافة البيانات الجديدة. قبل البدء، تأكد من تهيئة اتصال قاعدة البيانات في الملف config/database.php. للمزيد من المعلومات حول تهيئة قاعدة البيانات، تفقّد التوثيق المناسب. تعريف النماذج للبدء، لننشئ نموذج Eloquent. تتواجد النماذج افتراضيًّا في ...

مجالات الأسماء في PHP

ما هي مجالات الأسماء؟ التعريف الواسع لمجالات الأسماء هو: طريقة لتغليف العناصر، ويمكن رؤية هذا الأمر كمفهوم مجرد في عدة أماكن. فعلى سبيل المثال، تعمل المجلدات في أنظمة التشغيل المختلفة على تجميع الملفات المرتبطة ببعضها البعض، وهي بمثابة مجال أسماء لتلك الملفات. لنأخذ المثال التالي للتوضيح: يمكن أن يكون الملف foo.txt موجودًا في كلا المجلدين ‎/home/greg و ‎/home/other ولكن لا يمكن لنسختين من هذا الملف أن تكونا في المجلد ذاته، وإضافة لذلك يتطلب الوصول إلى الملف foo.txt من خارج المجلد ...

مجالات الأسماء في PHP

ما هي مجالات الأسماء؟ التعريف الواسع لمجالات الأسماء هو: طريقة لتغليف العناصر، ويمكن رؤية هذا الأمر كمفهوم مجرد في عدة أماكن. فعلى سبيل المثال، تعمل المجلدات في أنظمة التشغيل المختلفة على تجميع الملفات المرتبطة ببعضها البعض، وهي بمثابة مجال أسماء لتلك الملفات. لنأخذ المثال التالي للتوضيح: يمكن أن يكون الملف foo.txt موجودًا في كلا المجلدين ‎/home/greg و ‎/home/other ولكن لا يمكن لنسختين من هذا الملف أن تكونا في المجلد ذاته، وإضافة لذلك يتطلب الوصول إلى الملف foo.txt من خارج المجلد ...

مقدمو الخدمات (Service Providers) في Laravel

مقدمة مقدمو الخدمات هن الموقع المركزي لكامل عمليات تمهيد تطبيق Laravel. تطبيقك، ككامل خدمات Laravel الجوهرية، مُمَهَّد عبر مقدمي الخدمات. لكن ما الذي نقصده "بالتمهيد" (bootstrapping)؟ نقصد به عمومًا تسجيل الأشياء، بما في ذلك تسجيل ارتباطات حاويات الخدمات، ومنصتات الأحداث، والبرمجيات الوسيطة، وحتى المسارات (routes). مقدمو الخدمات هي المكان المركزي لإعداد تطبيقك مثلما ذكرنا سابقًا. إن فتحت الملف config/app.php المتضمن في Laravel فسترى المصفوفة providers، والتي تمثّل كل أصناف مقدمي الخدمات التي سَتُحَمَّل من أجل تطبيقك. كثير منهن طبعا مقدمون ...

البرمجيّات الوسيطة (Middleware) في Laravel

مقدمة تُوفِّر البرمجيّات الوسيطة آلية ملائمة لفرز الطلبات HTTP التي تدخل تطبيقك. على سبيل المثال، يحتوي Laravel على برمجيّّة وسيطة تتحقق إن كان مستخدم تطبيقك مصادقا عليه (authenticated). في حالة لم يكن مصادقا عليه، تعيد البرمجيّة الوسيطة توجيهه لصفحة تسجيل الدخول. في حالة كان مصادقا عليه، ستسمح البرمجيّة للطلب بالمرور لسائر التطبيق. يمكن طبعا كتابة برمجيّات وسيطة للقيام بمهام متنوعة عديدة عدا تسجيل الدخول. قد تكون برمجيّة CORS وسيطة مسؤولة عن إضافة الترويسات (headers) المناسبة لكل الردود التي يرسلها تطبيقك. ...

وحدات التحكّم (Controllers) في Laravel

مقدمة بدلًا من تعريف كامل منطق معالجة طلباتك (request handling logic) على أنّها نطاقات مغلقة (‎(Closures في ملفّات المسارات، قد ترغب في تنظيم هذا السلوك (behavior) باستخدام أصناف ووحدات التحكّم. تستطيع وحدات التحكّم جمع منطق معالجة الطلبات ذي الصلة في صنف واحد. تخزّن وحدات التحكّم في المجلّد app/Http/Controllers. وحدات التحكّم الأساسية تعريف وحدات التحكّم تجد أدناه مثالًا عن وحدة تحكّم بسيطة. لاحظ أن وحدة التحكّم تُوسّع صنف وحدة التحكّم الأساسية المُحتواة في Laravel. يوفّر الصنف الأساسي عددًا من التوابع المفيدة ...

طوابير الانتظار (Queues) في Laravel

مقدمة ملاحظة: يوفر Laravel الآن Horizon، لوحة تحكم وضبط للأنظمة المدعومة من طوابير انتظار Redis. تفقد توثيق Horizon لمزيد من المعلومات. توفّر طوابير انتظار Laravel واجهة API موحدة بين مختلف طوابير انتظار البيئة الخلفية مثل Beanstalk أو Amazon SQS أو Redis أو قواعد البيانات العلائقية. تسمح ٌطوابير الانتظار بتأخير إنجاز المهام التي تتطلب الكثير من الوقت مثل إرسال بريد لوقت لاحق. تأخير هذه المهام يسرّع طلبات الويب في التطبيق بشكل كبير. يوجد ملف ضبط طوابير الانتظار في config/queue.php. ستجد في ...

الموارد في رابط الكائنات بالعلاقات Eloquent

مقدمة عند بناء واجهات برمجة التطبيقات (المدعوة اختصاراً APIs)، قد تحتاج إلى طبقة تحويل تقع بين نماذج Eloquent وردود JSON المعادة فعليًّا إلى مستخدمي تطبيقك. تمكّنك الموارد في Laravel من تحويل النماذج بشكل فعال وسهل، بما يتضمن مجموعات النماذج. توليد الموارد لتوليد صنف مورد، يمكنك استخدام أمر artisan make:resource. افتراضيًّا، تقع الموارد في المجلد app/Http/Resources الخاص بتطبيقك. ترث الموارد من الصنف الأساسي Illuminate\Http\Resources\Json\JsonResource: php artisan make:resource User موارد المجموعات إضافةً إلى توليد موارد لتحويل النماذج الأحادية، يمكنك توليد موارد مسؤولة ...

declare في PHP

(PHP 4, PHP 5, PHP 7) تستخدم بنية declare لتعيين موجّهات التنفيذ (execution directives) لكتلة من الشيفرة، وصيغة declare مشابهة لبنى التحكم في تدفق الشيفرة. الوصف declare (directive) statement يتيح الموجه تعيين سلوك كتلة (block). يمكن للغة في الوقت الحاضر أن تتعرف على ثلاثة أنواع من الموجهات فقط: موجه ticks (للمزيد من المعلومات حول موجه ticks انظر أدناه)، وموجه encoding (للمزيد من المعلومات حول موجه encoding انظر أدناه)، وموجه strict_types (للمزيد من المعلومات راجع قسم strict في ...

declare في PHP

(PHP 4, PHP 5, PHP 7) تستخدم بنية declare لتعيين موجّهات التنفيذ (execution directives) لكتلة من الشيفرة، وصيغة declare مشابهة لبنى التحكم في تدفق الشيفرة. الوصف declare (directive) statement يتيح الموجه تعيين سلوك كتلة (block). يمكن للغة في الوقت الحاضر أن تتعرف على ثلاثة أنواع من الموجهات فقط: موجه ticks (للمزيد من المعلومات حول موجه ticks انظر أدناه)، وموجه encoding (للمزيد من المعلومات حول موجه encoding انظر أدناه)، وموجه strict_types (للمزيد من المعلومات راجع قسم strict في ...

الوحدة configparser‎‎ في بايثون

تقدّم هذه الوحدة الصنف ConfigParser الذي يستخدم لغة إعدادات بسيطة تقدّم بنية مشابهة للبنية التي تقدّمها ملفات INI في نظام Microsoft Windows. ويمكن استخدام هذا الصنف لكتابة برامج وتطبيقات يمكن للمستخدمين تخصيصها بكل سهولة. ملاحظة: لا تفسّر هذه المكتبة ولا تكتب لواحق قيمة-نوع التي يستخدمها إصدار سجلّ نظام ويندوز Windows Registry الموسّع بصيغة INI. بداية سريعة لنبدأ بملف الإعدادات البسيط التالي: [DEFAULT] ServerAliveInterval = 45 Compression = yes CompressionLevel = 9 ForwardX11 = yes [bitbucket.org] User = hg [topsecret.server.com] Port = 50022 ForwardX11 = no يتكوّن الملف بصورة أساسية من ...

التشفير (Encryption) في Laravel

مقدمة يستخدم مُشفّر Laravel مكتبة التشفير OpenSSL لتوفير تشفير AES-256 و AES-128. ننصحك بشدة باستخدام تسهيلات التشفير المضمنة في Laravel وعدم محاولة إنشاء خوارزميات التشفير المنشأة محليًا والخاصة بك. يتم توقيع جميع قيم Laravel المشفرة باستخدام رسالة رمز الاستيثاق (message authentication code - MAC) بحيث لا عدل قيمها الأساسية بمجرد تشفيرها. الضبط قبل استخدام مُشفّر Laravel، اضبط خيار المفتاح (‎(key في ملف الإعدادات config/app.php. استخدم الأمر php artisan key:generate لإنشاء هذا المفتاح لأن أمر Artisan سيستخدم مولد بايت عشوائي آمن ...

الثوابت في PHP

الثابت هو معرّف (اسم) لقيمة بسيطة، وكما هو واضح من الاسم فإنّ هذه القيمة غير قابلة للتبديل أثناء تنفيذ الشيفرة (باستثناء الثوابت السحرية والتي لا تعدّ ثوابت في الواقع). الثابت حساس لحالة الأحرف ومن الشائع استخدام الأحرف الكبيرة في تسمية الثوابت. تتبع الثوابت نفس القواعد المتّبعة للتسمية في PHP، فاسم الثابت الصحيح يبدأ بحرف أو بشرطة سفلية، متبوعًا بعدد غير محدّد من الأحرف والأرقام والشرطات السفلية. ولو أردنا استخدام التعابير النمطية (Regular Expressions) للتعبير عن اسم المتغير فسيكون كالتالي: [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]* ...

الثوابت في PHP

الثابت هو معرّف (اسم) لقيمة بسيطة، وكما هو واضح من الاسم فإنّ هذه القيمة غير قابلة للتبديل أثناء تنفيذ الشيفرة (باستثناء الثوابت السحرية والتي لا تعدّ ثوابت في الواقع). الثابت حساس لحالة الأحرف ومن الشائع استخدام الأحرف الكبيرة في تسمية الثوابت. تتبع الثوابت نفس القواعد المتّبعة للتسمية في PHP، فاسم الثابت الصحيح يبدأ بحرف أو بشرطة سفلية، متبوعًا بعدد غير محدّد من الأحرف والأرقام والشرطات السفلية. ولو أردنا استخدام التعابير النمطية (Regular Expressions) للتعبير عن اسم المتغير فسيكون كالتالي: [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]* ...

العلاقات في رابط الكائنات بالعلاقات Eloquent

مقدمة في معظم الأحيان، تكون جداول قواعد البيانات مرتبطة ببعضها البعض. على سبيل المثال، قد يكون لمقالة ما الكثير من التعليقات، أو قد تكون الطلبيّة مرتبطة بالمستخدم الذي قام بها. يجعل Eloquent العمل مع هذه العلاقات أمرًا سهلًا، ويدعم عدة أنواع من العلاقات المختلفة: واحد إلى واحد (One To One) واحد إلى كثير (One To Many) كثير إلى كثير (Many To Many) الكثير ضمن (Has Many Through) العلاقات متعددة الأشكال (Polymorphic Relationships) علاقات الكثير إلى كثير متعددة الأشكال (Many To ...

الواجهات (Views) في Laravel

إنشاء الواجهات ملاحظة: هل تبحث عن مزيد من المعلومات حول كيفية كتابة قوالب Blade؟ ألق نظرة على توثيق Blade الكامل للبدء. تحتوي الواجهات على HTML الذي يُقدّمه تطبيقك وتفصل منطق وحدة التحكّم/منطق التطبيق من منطق عرضك التقديمي (presentation logic). تُخزّن الواجهات في المُجلّد resources/views. قد تشبه الواجهة البسيطة المثال التالي: <! - الواجهات مُخزّنة في resources/views/greeting.blade.php -> <html> <body> <h1>Hello, {{ $name }}</h1> </body> </html> كما ترى، يُوافق المّتغيّر الوسيط ...

Laravel Scout

مقدمة يوفر Scout حلًا بسيطًا يستند على برنامج تشغيل (Driver) لإضافة البحث عن نص كامل في نماذج Eloquent. باستخدام مراقبي النموذج (model observers)، سيحافظ Scout بشكل تلقائي على مزامنة فهارس البحث مع سجلات Eloquent الخاصة بك. في الوقت الحالي، يأتي Scout مع برنامج التشغيل Algolia، ومع ذلك، فإن كتابة برامج تشغيل مخصصة بسيطة ولديك الحريّة في توسيع Scout مع تطبيقات البحث الخاصة بك. التثبيت ثبت أولًا Scout عن طريق مدير حزم Composer: composer require laravel/scout بعد تثبيت Scout، يجب عليك ...

Laravel Scout

مقدمة يوفر Scout حلًا بسيطًا يستند على برنامج تشغيل (Driver) لإضافة البحث عن نص كامل في نماذج Eloquent. باستخدام مراقبي النموذج (model observers)، سيحافظ Scout بشكل تلقائي على مزامنة فهارس البحث مع سجلات Eloquent الخاصة بك. في الوقت الحالي، يأتي Scout مع برنامج التشغيل Algolia، ومع ذلك، فإن كتابة برامج تشغيل مخصصة بسيطة ولديك الحريّة في توسيع Scout مع تطبيقات البحث الخاصة بك. التثبيت ثبت أولًا Scout عن طريق مدير حزم Composer: composer require laravel/scout بعد تثبيت Scout، يجب عليك ...

مقدمة إلى التعامل مع الاختبارات في Laravel

مقدمة بُني Laravel آخذًا الاختبارات بالحسبان؛ إذ يدعم Laravel الاختبارات باستخدام PHPUnit، ويهيّئ ملف phpunit.xml جاهز للعمل بما يناسب تطبيقك. كما دُعم إطار العمل بتوابع مساعدة لتمهيد الطريق أمام اختبار تطبيقاتك بشكل سلس وسهل. يحتوي المجلد tests الخاص بتطبيقك افتراضيًّا على مجلّدين فرعيين: Feature و Unit. تمكنك اختبارات الوحدة Unit tests من التركيز على جزء صغير ومعزول من الشيفرة الخاصة بك، إذ أنّ معظم اختبارات الوحدة تركّز فقط على تابع واحد؛ بينما تستخدم اختبارات الميزات Feature tests لاختبار جزء كبير ...

التجزئة (Hashing) في Laravel

مقدمة تقدم واجهة التجزئة الخاصة بإطار Laravel تجزئة Bcrypt و Argon2 آمنة لتخزين كلمات مرور المستخدم. إذا كنت تستخدم الصنفين الداخليين ‎(Built-in classes)‎ LoginController و RegisterController المتضمنين مع تطبيق Laravel الخاص بك، فإنهما يستخدمان Bcrypt للتسجيل والاستيثاق تلقائيًا. ملاحظة: يعدّ Bcrypt خيارًا رائعًا لتجزئة كلمات المرور لأن "عامل العمل" الخاص به قابل للتعديل، مما يعني أنه يمكن زيادة الوقت المستغرق لإنشاء تجزئة كلما زادت طاقة المعدات. الضبط يُضبط محرك تشغيل التجزئة التلقائي الخاص بتطبيقك في ملف الإعدادات config/hashing.php. يوجد حاليا ...

الإشعارات (Notifications) في Laravel

مقدمة بالإضافة لدعم إرسال البريد الإلكتروني، يوفّر Laravel دعمًا لإرسال إشعارات بين قنوات توصيل عديدة من ضمنها البريد الإكتروني، والرسائل القصيرة (عبر Nexmo)، و Slack. يمكن أيضًا حفظ الإشعارات في قاعدة البيانات لإظهارها في واجهة الويب. تكون الإشعارات في العادة على شكل رسائل قصيرة، وغنية بالمعلومات، تنبّه المستخدم لشيءٍ حدث في التطبيق. مثلًا، إن كنت تكتب تطبيق فواتير، يمكنك إرسال تنبيه "تمّ خلاص الفاتورة" للمستخدم عبر بريد إلكتروني أو رسالة قصيرة. إنشاء الإشعارات في Laravel، يُمثَّل كل تنبيه بصنف (موجودٌ ...

الجلسات HTTP في Laravel

مقدّمة توفر الجلسات طريقة لتخزين المعلومات حول المستخدم على عدّة طلبات نظرًا لأن التطبيقات المُعتمدة على HTTP بدون حالة. يأتي Laravel مع مجموعة متنوعة من الخلفيّات (backends) التي يمكن الوصول إليها عبر واجهة برمجية API تعبيرية موحّدة. كما يتضمّن دعم خلفيات شائعة مثل Memcached وRedis وقواعد البيانات خارج الأطر المألوفة. الضبط يُخزّن ملف إعدادات الجلسة في config/session.php. تأكد من مراجعة خياراتك المتاحة في هذا الملف. Laravel مُعد افتراضيًّا لاستخدام برنامج تشغيل (driver) الجلسة file الذي يعمل جيّدًا في العديد من ...

for في PHP

(PHP 4, PHP 5, PHP 7) تعدّ حلقات for النوع الأكثر تعقيدًا من الحلقات في PHP، وهي مشابهة لنظيرتها في لغة C، وتأخذ الصيغة التالية: for (expr1; expr2; expr3) statement ينفّذ التعبير expr1 مرة واحدة دون قيد أو شرط في بداية الحلقة، وينفّذ التعبير expr2 في بداية كل دورة، فإن كانت النتيجة هي TRUE فتستمر الحلقة في عملها وتنفّذ العبارات المضمّنة فيها، أما إن كانت النتيجة هي FALSE فتتوقف الحلقة عن العمل، أما التعبير expr3 فينفّذ في ...

if في PHP

(PHP 4, PHP 5, PHP 7) بنية if هي واحدة من أهم الميزات المتوفّرة في العديد من اللغات البرمجية، ومن ضمنها PHP. إذ تتيح تنفيذ أجزاء من الشيفرة اعتمادًا على شروط معينة. تعتمد PHP بنية if المعتمدة في لغة C: if (expr) statement تُحسب التعابير -كما ورد في الفصل المتعلّق بالتعابير في هذا الدليل- إلى قيمة منطقية (Boolean)، فإن كانت نتيجة الحساب هي TRUE تنفذ PHP العبارة، وإن كانت نتيجة الحساب هي FALSE تتجاهل اللغة ذلك التعبير. يمكن الحصول ...

for في PHP

(PHP 4, PHP 5, PHP 7) تعدّ حلقات for النوع الأكثر تعقيدًا من الحلقات في PHP، وهي مشابهة لنظيرتها في لغة C، وتأخذ الصيغة التالية: for (expr1; expr2; expr3) statement ينفّذ التعبير expr1 مرة واحدة دون قيد أو شرط في بداية الحلقة، وينفّذ التعبير expr2 في بداية كل دورة، فإن كانت النتيجة هي TRUE فتستمر الحلقة في عملها وتنفّذ العبارات المضمّنة فيها، أما إن كانت النتيجة هي FALSE فتتوقف الحلقة عن العمل، أما التعبير expr3 فينفّذ في ...

if في PHP

(PHP 4, PHP 5, PHP 7) بنية if هي واحدة من أهم الميزات المتوفّرة في العديد من اللغات البرمجية، ومن ضمنها PHP. إذ تتيح تنفيذ أجزاء من الشيفرة اعتمادًا على شروط معينة. تعتمد PHP بنية if المعتمدة في لغة C: if (expr) statement تُحسب التعابير -كما ورد في الفصل المتعلّق بالتعابير في هذا الدليل- إلى قيمة منطقية (Boolean)، فإن كانت نتيجة الحساب هي TRUE تنفذ PHP العبارة، وإن كانت نتيجة الحساب هي FALSE تتجاهل اللغة ذلك التعبير. يمكن الحصول ...

الواجهات الساكنة (Facades) في Laravel

مقدمة تُوفِّر الواجهات الساكنة واجهة "ساكنة" (static) للأصناف المتوافرة في حاوي خدمات تطبيقك. يأتي Laravel مع عدة واجهات تمكنك من استخدام كل خاصيات Laravel تقريبًا. تمثل واجهات Laravel الساكنة "وسطاء ساكنات" (static proxies) للأصناف الأساسية بحاوي الخدمات مما يوفر كل فوائد الصِّيغ (syntax) المقتضبة والمُعبِّرة مع الحفاظ على قابلية الاختبار ومرونة أكبر من الدالات الساكنة التقليدية. كل واجهات Laravel الساكنة مُعرَّفةٌ في مجال الأسماء Illuminate\Support\Facades. يمكننا الوصول لواجهة ساكنة بهذه الطريقة: use Illuminate\Support\Facades\Cache; Route::get('/cache', function () { return ...

التعامل مع قواعد بيانات Redis في Laravel

مقدمة Redis هو مخزن متقدم لمفتاح-قيمة (key-value) وهو مفتوح المصدر، وغالبًا ما يشار إليه على أنه خادم هيكلية البيانات حيث يمكن أن تحتوي المفاتيح على سلاسل نصيّة وشيفرات وقوائم ومجموعات ومجموعات مرتبة. قبل أن نستخدم Redis مع Laravel، ستحتاج إلى تثبيت حزمة predis/predis عن طريق Composer: composer require predis/predis ويمكنك بدلًا من ذلك تثبيت ملحق PhpRedis PHP عن طريق PECL، ويعد هذا الملحق الأكثر تعقيدًا، ولكن ستكون النتائج ذات أداء أفضل لتطبيقات التي تستخدم Redis بشكل مكثف. الضبط إن ملف ضبط ...

التسجيل (Logging) في Laravel

مقدمة يوفر Laravel خدمات تسجيل صلبة (robust) تسمح لك بتسجيل الرسائل في ملفّات، و سجّل أخطاء النظام، وحتى بتطبيق Slack لإعلام فريقك بأكمله وذلك لمساعدتك على معرفة المزيد حول ما يحدث داخل تطبيقك. يستخدم Laravel وراء الكواليس مكتبة Monolog التي توفر الدعم لمجموعة متنوعة من معالجات السجل القوية. يجعل Laravel إعداد هذه المُعالجات سهلة للغاية، ممّا يسمح لك بالتنسيق بينهم لتخصيص معالجة سجل تطبيقك. الضبط توجد كل إعدادات نظام تسجيل تطبيقك في ملف الإعدادات config/logging.php. يتيح لك هذا الملف إعداد ...

اختبارات HTTP في Laravel

مقدمة يزوّدك Laravel بـواجهة برمجيّة سلسة للقيام بطلبات HTTP لتطبيقك وتحليل الناتج. على سبيل المثال، القِ نظرة على الاختبار التالي: <?php namespace Tests\Feature; use Tests\TestCase; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\WithoutMiddleware; class ExampleTest extends TestCase {    /**     * مثال اختبار بسيط.     *     * @return void     */    public function testBasicTest()    {        $response = $this->get('/');        $response->assertStatus(200);    } } ينشئ التابع get طلب GET للتطبيق، بينما يتأكد التابع assertStatus من أنّ الرد المُعاد يحتوي على رمز حالة HTTP المعطى. إضافةً إلى هذا التأكد البسيط، يحتوي Laravel على مجموعة من توابع التأكيد لفحص المعلومات المتعلقة بالرد، كترويسات الرد (response headers)‎، ومحتوى الرد، وبنية ...

المجموعات في رابط الكائنات بالعلاقات Eloquent

مقدمة إنّ جميع مجموعات النتائج المتعددة المعادة من Eloquent هي كائنات من الصنف Illuminate\Database\Eloquent\Collection، بما فيها النتائج المستردة من التابع get أو من العلاقات. يرث صنف مجموعة Eloquent من الصنف الأساسي لمجموعة Laravel، وبالتالي ترث هذه المجموعات الكثير من التوابع التي تساعد بالعمل مع المصفوفات المستخدمة مع نماذج Eloquent. بالطبع، تعمل جميع المجموعات كمكررات، مما يمكّنك من المرور على عناصرها وكأنها مصفوفات عادية: $users = App\User::where('active', 1)->get(); foreach ($users as $user) {    echo $user->name; } لكنّ المجموعات أقوى بكثير من المصفوفات، إذ تزود الكثير ...

اختبارات المتصفح (Laravel Dusk) في Laravel

مقدمة يوفّر لك Laravel Dusk أتمتة للمتصفّح واختبار للواجهات البرمجيّة بطريقة سهلة الاستخدام. بشكلٍ افتراضي، لا يتطلّب Dusk تنصيب JDK أو Selenium على جهازك، حيث يستعمل تثبيت مستقل (standalone) لبرمجية ChromeDriver. بأي حال، يمكنك استخدام أي برنامج تشغيل متوافق مع Selenium إذا أردت. التثبيت للبدء، أضف الاعتمادية laravel/dusk إلى مشروعك: composer require --dev laravel/dusk بعد تثبيت Dusk، سجّل مزوّد الخدمة الذي يتبع إلى Dusk، وهو Laravel\Dusk\DuskServiceProvider. بشكل عام، يكون هذا تلقائيًّا باستخدام التسجيل التلقائي لمزوّدات خدمة Laravel. تنبيه: إذا قمت بتسجيل ...

العقود (Contracts) في Laravel

مقدمة عقود Laravel هي مجموعة من الواجهات (interfaces) التي تعرِّف الخدمات المركزية التي يوفرها إطار العمل. على سبيل المثال، يعرِّف العقد Illuminate\Contracts\Queue\Queue  الدوال اللازمة لصف الأعمال في الطوابير، بينما يعرِّف عقد Illuminate\Contracts\Mail \Mailer الدوال اللازمة لإرسال رسائل البريد الإلكتروني. لكل عقد تعريف استخدام (implementation) يوفره إطار العمل. على سبيل المثال، يوفِّر Laravel تعريف استخدام للطابور لعدة أنواع من المشغلات (drivers) كما يوفِّر تعريف استخدام للمُرسِل مشغل بواسطة SwiftMailer. توجد كل عقود Laravel في مستودعات في GitHub. هذا يوفر نقطة مرجعية سريعة لكل ...

Laravel Horizon

مقدمة يوفّر Horizon لوحة تحكم جميلة و إعدادات برمجيّة لطوابير ‏‎(Queues) Laravel المبنيّة على Redis، فهو يوفّر لك مراقبة سهلة للمقاييس الأساسية لنظام الطوابير مثل إنتاجيّة العمل ووقت التشغيل، وفشل المهام. ستبقى جميع عمليّات الضبط في ملف ضبط واحد وبسيط ممّا يضمن التعاون الكامل بين أعضاء فريقك. التثبيت تنبيه: يتطلّب ‎،Horizon نظرًا لاستخدامه لإشارات العمليّة غير متزامنة، إلى نسخة PHP‏ 7.1‏ فما فوق. ويجب عليك التأكّد من تعيين محرك الطابور إلى Redis في ملف ضبط الطابور. يمكنك استخدام Composer لتثبيت ...

Laravel Horizon

مقدمة يوفّر Horizon لوحة تحكم جميلة و إعدادات برمجيّة لطوابير ‏‎(Queues) Laravel المبنيّة على Redis، فهو يوفّر لك مراقبة سهلة للمقاييس الأساسية لنظام الطوابير مثل إنتاجيّة العمل ووقت التشغيل، وفشل المهام. ستبقى جميع عمليّات الضبط في ملف ضبط واحد وبسيط ممّا يضمن التعاون الكامل بين أعضاء فريقك. التثبيت تنبيه: يتطلّب ‎،Horizon نظرًا لاستخدامه لإشارات العمليّة غير متزامنة، إلى نسخة PHP‏ 7.1‏ فما فوق. ويجب عليك التأكّد من تعيين محرك الطابور إلى Redis في ملف ضبط الطابور. يمكنك استخدام Composer لتثبيت ...

قوالب Blade في Laravel

مقدمة يقدم Laravel محرّك قولبةٍ بسيطاً لكن قويٌّ و فعّال هو Blade. على خلاف محرّكات PHP أخرى، لا يمنع Blade المستخدم من استعمال شيفرات PHP في الواجهة، بل إنّه يحوِِّل صفحات Blade إلى شيفرة PHP ويخزِّنها تخزينًا مؤقتًا إلى حين تغييرها. ممّا يعني أنّ Blade لا يتطلب أيّ جهد أو وقت إضافي من التطبيق. تنتهي صفحات Blade بالامتداد blade.php. وتوجد عادة في مجلد resources/views. توريث القوالب تعريف التخطيط إنّ من الفوائد الأساسية لاستخدام Blade هي توريث القوالب (template inheritance) واستخدام ...

قوالب Blade في Laravel

مقدمة يقدم Laravel محرّك قولبةٍ بسيطاً لكن قويٌّ و فعّال هو Blade. على خلاف محرّكات PHP أخرى، لا يمنع Blade المستخدم من استعمال شيفرات PHP في الواجهة، بل إنّه يحوِِّل صفحات Blade إلى شيفرة PHP ويخزِّنها تخزينًا مؤقتًا إلى حين تغييرها. ممّا يعني أنّ Blade لا يتطلب أيّ جهد أو وقت إضافي من التطبيق. تنتهي صفحات Blade بالامتداد blade.php. وتوجد عادة في مجلد resources/views. توريث القوالب تعريف التخطيط إنّ من الفوائد الأساسية لاستخدام Blade هي توريث القوالب (template inheritance) واستخدام ...

البث (Broadcasting) في Laravel

مقدمة في العديد من التطبيقات الحديثة، تُستعمل Websockets لتنفيذ واجهات استخدام فورية ذات تحيين مباشر. عند رفع بعض البيانات للخادم، تُرسَل في العادة رسالة على اتصال websocket لتُعالَج من قبل العميل. يوفّر هذا بديلًا فعالًا للسحب المتواصل للتطبيق من أجل التغييرات. لمساعدتك في بناء هذا النوع من التطبيقات، يجعل Laravel من السهل "بث" أحداث عبر صلة websocket. يسمح بث الأحداث بمشاركة نفس الأحداث بين شيفرة من جهة الخادم وشيفرة من جهة العميل. ملاحظة: قبل التعمق في بث الأحداث، تأكد من ...

مجالات الأسماء والوحدات في TypeScript

ملاحظة حول المصطلحات تغيّرت طريقة استخدام المصطلحات في النسخة TypeScript 1.5، إذ كانت مجالات الأسماء (namespaces) تُسمّى قديمًا بمصطلح "الوحدات الداخليّة (internal modules)"، وما كان يُسمّى بالوحدات الخارجيّة (External modules) أصبح يُسمّى ببساطة بمصطلح "الوحدات (modules)" وهو ما سنغطّيه في هذه الصفحة. ويجب استخدام الكلمة المفتاحية ‎namespace‎ في الأماكن التي كانت تُستخدَم فيها الكلمة المفتاحية ‎module‎ للتصريح عن وحدة داخليّة في النسخ التي سبقت TypeScript 1.5، أي أنّ عليك استخدام ‎namespace X {‎ عوضًا عن ‎module X {‎ (انظر صفحة ...

switch في PHP

(PHP 4, PHP 5, PHP 7) تشبه عبارة switch سلسلةً من عبارات if مطبّقة على نفس التعبير. قد تحتاج في بعض الأحيان إلى مقارنة نفس المتغير (أو التعبير) مع قيم مختلفة (حالات cases)، وتنفيذ شيفرة مختلفة بالاعتماد على ذلك، وهذه هي وظيفة عبارة switch. ملاحظة: بخلاف بعض اللغات البرمجية، يمكن استخدام عبارة continue في switch وهي تعمل عمل العبارة break. إن كنت تستخدم switch داخل حلقة وأردت الانتقال إلى الدورة التالية في الحلقة التكرارية الخارجية، استخدم continue 2. ملاحظة: تؤدي ...

include في PHP

(PHP 4, PHP 5, PHP 7) تعمل عبارة include على تضمين ومعالجة الملف المحدّد. ينطبق التوثيق التالي على عبارة require. تُضمّن الملفات بالاعتماد على المسار المعطى للعبارة، وفي حال عدم تحديد المسار، تأخذ include المسار المحدد في include_path. إن لم يكن الملف موجودًا في include_path ستتحقّق include في المجلّد الذي يحتوي على الشيفرة التي أجرت الاستدعاء وفي مجلد العمل الحالي قبل أن تطلق خطأً. تطلق بنية include تحذيرًا إن لم تتمكن من العثور على الملف، وتختلف في ذلك عن require ...

break في PHP

(PHP 4, PHP 5, PHP 7) تنهي break تنفيذ حلقات for أو foreach أو while أو do-while أو بنية switch. تأخذ break معاملًا عدديًا اختياريًا يُحدّد من خلاله عدد البنى المتداخلة التي‏ يجب إيقاف تنفيذها. القيمة الافتراضية لهذا المعامل هي 1، والذي يعني إيقاف تنفيذ البنية الحالية فقط. <?php $arr = array('one', 'two', 'three', 'four', 'stop', 'five'); while (list(, $val) = each($arr)) { if ($val == 'stop') { break; /* يمكن أيضًا كتابة /* ...

require في PHP

(PHP 4, PHP 5, PHP 7) العبارة require مطابقة للعبارة include باستثناء أنّها تطلق خطأ من نوع E_COMPLE_ERROR في حال فشلها في جلب الملف. وبعبارة أخرى فإنها ستوقف عمل الشيفرة تمامًا، في حين أنّ include تطلق تحذيرًا (E_WARNING) والذي لا يؤدي إلى إيقاف الشيفرة عن العمل. راجع توثيق include لمعرفة طريقة عملها. مصادر صفحة require في توثيق PHP الرسمي.

المتغيرات في PHP

يكون التعبير عن المتغيرات في PHP باستخدام علامة $ متبوعة باسم المتغير والذي يكون حساسًا لحالة الأحرف. تتبع المتغيرات نفس القواعد المتبّعة للتسمية في PHP. إذ يبدأ اسم المتغير الصحيح بحرف أو بشرطة سفلية متبوعة بعدد غير محدد من الحروف أو الأرقام أو الشرطات السفلية. ولو أردنا استخدام التعابير النمطية (Regular Expression) للتعبير عن اسم المتغير فسيكون كالتالي: '‎‎[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*‎‎'. ملاحظة: في هذا الدليل الحرف هو كل ما يقع ضمن النطاق a-z و A-Z والبايتات من 127 إلى 255 (0x7f-0xff). ملاحظة: ...

continue في PHP

(PHP 4, PHP 5, PHP 7) تستخدم continue في الحلقات التكرارية لتجاوز ما يأتي بعدها في الحلقة التكرارية والاستمرار في تنفيذ الشيفرة حسب الشرط المعتمد في الحلقة ثم الانتقال إلى بداية الدورة التالية. تأخذ continue معاملًا عدديًّا اختياريًا يمكن من خلاله تحديد عدد الحلقات التكرارية المحيطة بها والتي يجب تجاوزها إلى النهاية. القيمة الافتراضية هي 1 والتي تعني الانتقال إلى نهاية الحلقة الحالية. ملاحظة: تعدّ عبارة switch في PHP من الحلقات التكرارية عند الحديث عن continue. تسلك continue سلوك break ...

العوامل في PHP

يأخذ العامل (operator) قيمة واحدة أو أكثر (أو تعابير حسب اصطلاحات البرمجة) ويعطي قيمة أخرى (بحيث تتحول البنية نفسها إلى تعبير). يمكن تصنيف العوامل بحسب عدد القيم التي تأخذها، فالعوامل الأحادية Uanry تأخذ قيمة واحدة فقط مثل العامل (!) (معامل النفي المنطقي) أو (++) (معامل الزيادة). أما العوامل الثنائية فتأخذ قيمتين، وخير مثال عليها هو العوامل الحسابية المعروفة (+) الجمع، و (-) الطرح، إضافة إلى غالبية العوامل التي تقدّمها لغة PHP. وأخيرًا هناك معامل ثلاثي وحيد وهو ? : ويأخذ قيمًا ثلاثة، ...

return في PHP

(PHP 4, PHP 5, PHP 7) تعيد تنفيذ البرنامج إلى الوحدة التي قامت بالاستدعاء، وسيستمر التنفيذ إلى التعبير الذي يلي تعبير الاستدعاء. إذا استدعيت عبارة return داخل الدالة فإنّها ستنهي تنفيذ الدالة على الفور وتعيد معاملها كقيمة لاستدعاء الدالة. تنهي return أيضًا تنفيذ عبارة eval()‎ أو ملف الشيفرة. إن استدعيت عبارة return من النطاق العام (global scope) فإنها تنهي عملية تنفيذ ذلك الملف. وإن كان ملف الشيفرة مضمنًا (included) أو مطلوبًا (required)، فإن التحكّم يعود إلى الملف المستدعي مرة أخرى. ...

المصفوفات في PHP

المصفوفة في PHP هي خريطة (map) مرتّبة، والخريطة هي نوع ترتبط فيه القيم مع المفاتيح، ولها استخدامات عديدة، فيمكن التعامل معها كمصفوفة أو قائمة (vector) أو جدول hash (نوع من الخرائط) أو قاموس (dictionary) أو مجموعة (collection) أو مكدس (stack) أو طابور (queue) وغير ذلك، حتى أن قيم المصفوفة يمكن أن تكون مصفوفات أخرى، ممّا يسمح بإنشاء مصفوفات متعددة الأبعاد. لن نشرح جميع هذه الأنواع في هذا التوثيق، لكن ستجد مثالًا واحدًا على الأقل لكلٍ منها. الصياغة إنشاء المصفوفات باستخدام ...

foreach في PHP

(PHP 4, PHP 5, PHP 7) تقدّم بنية foreach طريقة سهلة للتنقل بين عناصر المصفوفات، وتعمل هذه البنية مع المصفوفات والكائنات فقط، ويؤدي استخدامها مع متغير ذي نوع بيانات مختلف أو متغير غير مهيئ إلى إطلاق خطأ. لهذه البنية صيغتان: foreach (array_expression as $value) statement foreach (array_expression as $key => $value) statement تنتقل الصيغة الأولى عبر المصفوفة بحسب التعبير المقدّم إليها (array_expression). وفي كل دورة تسند اللغة قيمة العنصر الحالي إلى المتغير ‎$value ويتقدّم المؤشر ...

الكائنات في PHP

تهيئة الكائن لإنشاء كائن جديد، استخدم التعبير البرمجي new لتهيئة كائن من صنفٍ ما (class): <?php class foo { function do_foo() { echo "Doing foo."; } } $bar = new foo; $bar->do_foo(); ?> راجع فصل الأصناف والكائنات (Classes and Objects) للمزيد من المعلومات. التحويل إلى كائن إذا حوّلنا كائنًا إلى كائنٍ آخر فلن يُعدَّل فيه شيء، أما إذا حولنا قيمةً من أي نوعٍ آخر إلى كائن، فستُنشَأ نسخةً جديدةً من ...

goto في PHP

(PHP 5 >= 5.3.0, PHP 7) يمكن استخدام عامل goto للانتقال إلى قسم آخر في البرنامج، وتعيّن نقطة الانتقال هذه بواسطة وسم متبوعٍ بنقطتين رأسيتين (:)، وتكون طريقة الانتقال باستخدام العامل goto متبوعًا بالوسم المراد الانتقال إليه. هناك بعض القيود المفروضة على استخدام goto، إذ يجب أن يكون الوسم الهدف في نفس الملف ونفس السياق (context)، بمعنى أنّه لا يمكن الانتقال من داخل الدالة أو التابع إلى الخارج كما لا يمكن الانتقال إلى الداخل. لا يمكن أيضًا الانتقال إلى أي ...

continue في PHP

(PHP 4, PHP 5, PHP 7) تستخدم continue في الحلقات التكرارية لتجاوز ما يأتي بعدها في الحلقة التكرارية والاستمرار في تنفيذ الشيفرة حسب الشرط المعتمد في الحلقة ثم الانتقال إلى بداية الدورة التالية. تأخذ continue معاملًا عدديًّا اختياريًا يمكن من خلاله تحديد عدد الحلقات التكرارية المحيطة بها والتي يجب تجاوزها إلى النهاية. القيمة الافتراضية هي 1 والتي تعني الانتقال إلى نهاية الحلقة الحالية. ملاحظة: تعدّ عبارة switch في PHP من الحلقات التكرارية عند الحديث عن continue. تسلك continue سلوك break ...

require_once في PHP

(PHP 4, PHP 5, PHP 7) عبارة require_once مطابقة للعبارة require باستثناء أن PHP ستتحقق مما إذا كان الملف مضمّنًا أم لا، وذلك لتجنّب تضمينه (require) مرة أخرى. راجع توثيق include_once للمزيد من المعلومات حول طريقة عمل ‎_once، والفرق بينها وبين الدوال التي لا تلحق بها هذه اللاحقة. مصادر صفحة require_once في توثيق PHP الرسمي.

الأخطاء في PHP

مقدمة لا مفرّ من الوقوع في الأخطاء مهما كنّا حريصين في كتابة الشيفرة. تبلغ PHP عن الأخطاء والتحذيرات والملاحظات التي تحدث بسبب المشاكل الحاصلة في وقت التشغيل، وتصبح عملية تنقيح الأخطاء (Debugging) أكثر سهولة عند معرفة كيفية الكشف عن هذه الأخطاء والتعامل معها. الأساسيات تبلّغ PHP عن الأخطاء الناجمة عن عدد من الأخطاء الداخلية، ويمكن الاستفادة من ذلك في الكشف عن عدد من الحالات المختلفة ويمكن عرضها و/أو تسجيلها حسب الحاجة. تقسم الأخطاء في PHP إلى أنواع مختلفة، وهناك قائمة ...

require في PHP

(PHP 4, PHP 5, PHP 7) العبارة require مطابقة للعبارة include باستثناء أنّها تطلق خطأ من نوع E_COMPLE_ERROR في حال فشلها في جلب الملف. وبعبارة أخرى فإنها ستوقف عمل الشيفرة تمامًا، في حين أنّ include تطلق تحذيرًا (E_WARNING) والذي لا يؤدي إلى إيقاف الشيفرة عن العمل. راجع توثيق include لمعرفة طريقة عملها. مصادر صفحة require في توثيق PHP الرسمي.

المولدات في PHP

تقدّم المولِّدات (Generators) طريقة سهلة لاستخدام المكرِّرات (Iterators) البسيطة دون الدخول في تعقيدات استخدام صنف يطبّق الواجهة Iterator. تتيح المولِّدات كتابة شيفرة تستخدم foreach لمرور على مجموعة من البيانات دون الحاجة إلى بناء مصفوفة في الذاكرة مما قد يؤدي إلى تجاوز حدود الذاكرة، أو يحتاج إلى وقت معالجة طويل لإنشائه. بدلًا من ذلك، يمكن كتابة دالة مولِّدة وهي دالة مشابهة للدوال الاعتيادية باستثناء أنّها لا تعيد النتيجة مرة واحدة بل تعيد العدد المطلوب من النتائج لغرض تقديم القيم التي يتم ...

else في PHP

(PHP 4, PHP 5, PHP 7) قد ترغب في كثير من الأحيان تنفيذ عبارة معينة عند تحقق شرط معين وتنفيذ عبارة أخرى في حال عدم تحقق الشرط. هنا يأتي دور else، والتي تعمل على تمديد عبارة if لتنفيذ عبارة أخرى في حال أدّى حساب عبارة if إلى النتيجة FALSE. على سبيل المثال تطبع الشيفرة التالية عبارة 'a is greater than b' إن كان المتغير ‎$a أكبر من المتغير ‎$b، وتطبع العبارة 'a is NOT greater than b' إن كان ‎$a ...

foreach في PHP

(PHP 4, PHP 5, PHP 7) تقدّم بنية foreach طريقة سهلة للتنقل بين عناصر المصفوفات، وتعمل هذه البنية مع المصفوفات والكائنات فقط، ويؤدي استخدامها مع متغير ذي نوع بيانات مختلف أو متغير غير مهيئ إلى إطلاق خطأ. لهذه البنية صيغتان: foreach (array_expression as $value) statement foreach (array_expression as $key => $value) statement تنتقل الصيغة الأولى عبر المصفوفة بحسب التعبير المقدّم إليها (array_expression). وفي كل دورة تسند اللغة قيمة العنصر الحالي إلى المتغير ‎$value ويتقدّم المؤشر ...

PHP/Function

تحتوي لغة PHP على عددٍ كبير من الدوال القياسية المُضمَّنة في اللغة. دوال المصفوفات الدوال الرياضية دوال معالجة النصوص

المراجع في PHP

المراجع (references) في PHP هي وسيلة للوصول إلى محتوى المتغير نفسه باستخدام أسماء مختلفة، والمراجع لا تشبه المؤشّرات في لغة C، فعلى سبيل المثال لا يمكن إجراء العمليات الحسابية الخاصّة بالمؤشّرات على المراجع، وهي ليست عناوين ذاكرة حقيقية، وهكذا. راجع الصفحة "ما هو غير المقصود بالمراجع" للمزيد من المعلومات. المراجع هي أسماء بديلة رمزية مجدولة (Symbol table aliases). لاحظ أنّ اسم المتغير ومحتواه مختلفان في لغة PHP؛ لهذا يمكن لنفس المحتوى أن يحمل اسمين مختلفين. وأقرب مثال على ذلك هو ...

include_once في PHP

(PHP 4, PHP 5, PHP 7) تُضمِّن العبارة include_once الملفّ المحدد وتعالجه أثناء تنفيذ الشيفرة. هذه السلوك مشابه لعبارة include والفرق الوحيد هنا هو إن كانت شيفرة ذلك الملف مضمّنة من قبل فإنّها لن تُضمِّنَه مرة أخرى، وترجع include_once القيمة TRUE، وهذا السلوك متوقع من اسم العبارة. يمكن استخدام include_once في الحالات التي يمكن لنفس الملف أن يُضمَّن ويُعالَج لأكثر من مرة خلال مرحلة معيّنة من مراحل تنفيذ الشيفرة، وفي هذه الحالة يمكن تجنب بعض المشاكل مثل إعادة تعريف الدوال ...

الكائنات في PHP

تهيئة الكائن لإنشاء كائن جديد، استخدم التعبير البرمجي new لتهيئة كائن من صنفٍ ما (class): <?php class foo { function do_foo() { echo "Doing foo."; } } $bar = new foo; $bar->do_foo(); ?> راجع فصل الأصناف والكائنات (Classes and Objects) للمزيد من المعلومات. التحويل إلى كائن إذا حوّلنا كائنًا إلى كائنٍ آخر فلن يُعدَّل فيه شيء، أما إذا حولنا قيمةً من أي نوعٍ آخر إلى كائن، فستُنشَأ نسخةً جديدةً من ...

include_once في PHP

(PHP 4, PHP 5, PHP 7) تُضمِّن العبارة include_once الملفّ المحدد وتعالجه أثناء تنفيذ الشيفرة. هذه السلوك مشابه لعبارة include والفرق الوحيد هنا هو إن كانت شيفرة ذلك الملف مضمّنة من قبل فإنّها لن تُضمِّنَه مرة أخرى، وترجع include_once القيمة TRUE، وهذا السلوك متوقع من اسم العبارة. يمكن استخدام include_once في الحالات التي يمكن لنفس الملف أن يُضمَّن ويُعالَج لأكثر من مرة خلال مرحلة معيّنة من مراحل تنفيذ الشيفرة، وفي هذه الحالة يمكن تجنب بعض المشاكل مثل إعادة تعريف الدوال ...

require_once في PHP

(PHP 4, PHP 5, PHP 7) عبارة require_once مطابقة للعبارة require باستثناء أن PHP ستتحقق مما إذا كان الملف مضمّنًا أم لا، وذلك لتجنّب تضمينه (require) مرة أخرى. راجع توثيق include_once للمزيد من المعلومات حول طريقة عمل ‎_once، والفرق بينها وبين الدوال التي لا تلحق بها هذه اللاحقة. مصادر صفحة require_once في توثيق PHP الرسمي.

المولدات في PHP

تقدّم المولِّدات (Generators) طريقة سهلة لاستخدام المكرِّرات (Iterators) البسيطة دون الدخول في تعقيدات استخدام صنف يطبّق الواجهة Iterator. تتيح المولِّدات كتابة شيفرة تستخدم foreach لمرور على مجموعة من البيانات دون الحاجة إلى بناء مصفوفة في الذاكرة مما قد يؤدي إلى تجاوز حدود الذاكرة، أو يحتاج إلى وقت معالجة طويل لإنشائه. بدلًا من ذلك، يمكن كتابة دالة مولِّدة وهي دالة مشابهة للدوال الاعتيادية باستثناء أنّها لا تعيد النتيجة مرة واحدة بل تعيد العدد المطلوب من النتائج لغرض تقديم القيم التي يتم ...

elseif في PHP

(PHP 4, PHP 5, PHP 7) كما هو واضح من الاسم فإنّ هذه العبارة هي مزيج من if و else، وكما هو الحال مع else يمكن توسيع عبارة if لتنفيذ عبارة أخرى في حال كانت نتيجة تعبير if هي FALSE. ولكن، على العكس من else، فإن elseif تنفذ ذلك التعبير البديل في حالة واحدة فقط وهي أن تكون نتيجة التعبير الشرطي المتعلق بعبارة elseif هي TRUE. فعلى سبيل المثال تعرض الشيفرة التالية عبارة 'a is bigger than b'، أو 'a ...

المصفوفات في PHP

المصفوفة في PHP هي خريطة (map) مرتّبة، والخريطة هي نوع ترتبط فيه القيم مع المفاتيح، ولها استخدامات عديدة، فيمكن التعامل معها كمصفوفة أو قائمة (vector) أو جدول hash (نوع من الخرائط) أو قاموس (dictionary) أو مجموعة (collection) أو مكدس (stack) أو طابور (queue) وغير ذلك، حتى أن قيم المصفوفة يمكن أن تكون مصفوفات أخرى، ممّا يسمح بإنشاء مصفوفات متعددة الأبعاد. لن نشرح جميع هذه الأنواع في هذا التوثيق، لكن ستجد مثالًا واحدًا على الأقل لكلٍ منها. الصياغة إنشاء المصفوفات باستخدام ...

goto في PHP

(PHP 5 >= 5.3.0, PHP 7) يمكن استخدام عامل goto للانتقال إلى قسم آخر في البرنامج، وتعيّن نقطة الانتقال هذه بواسطة وسم متبوعٍ بنقطتين رأسيتين (:)، وتكون طريقة الانتقال باستخدام العامل goto متبوعًا بالوسم المراد الانتقال إليه. هناك بعض القيود المفروضة على استخدام goto، إذ يجب أن يكون الوسم الهدف في نفس الملف ونفس السياق (context)، بمعنى أنّه لا يمكن الانتقال من داخل الدالة أو التابع إلى الخارج كما لا يمكن الانتقال إلى الداخل. لا يمكن أيضًا الانتقال إلى أي ...

الموارد في PHP

المورد هو متغير خاص يحمل مرجعيةً إلى مورد خارجي، تُنشَأ الموارد وتُستخدَم باستعمال دوال خاصة، اطلع على الملحق للحصول على قائمة تضم جميع الدوال مع نوع المورد المناسب. اطلع على الدالة get_resource_type()‎ أيضًا. التحويل إلى مورد لا يمكن تحويل القيم من الأنواع الأخرى إلى موارد، فهذه المتغيرات تحمل مقابض (handles) خاصة لفتح الملفات، اتصالات قاعدة البيانات، مناطق الصورة … تحرير الموارد بفضل نظام عدّ المراجع (reference-counting system) الموجود في محرك Zend، ستُكتَشَف الموارد التي لا تمتلك مرجع إليها تلقائيًا، ,وتُحرَّر ...

require في PHP

(PHP 4, PHP 5, PHP 7) العبارة require مطابقة للعبارة include باستثناء أنّها تطلق خطأ من نوع E_COMPLE_ERROR في حال فشلها في جلب الملف. وبعبارة أخرى فإنها ستوقف عمل الشيفرة تمامًا، في حين أنّ include تطلق تحذيرًا (E_WARNING) والذي لا يؤدي إلى إيقاف الشيفرة عن العمل. راجع توثيق include لمعرفة طريقة عملها. مصادر صفحة require في توثيق PHP الرسمي.

المصفوفات في PHP

تسمح لك هذه الدوال بالتعامل مع المصفوفات وتعديلها بطرائق عديدة. المصفوفات عنصر أساسي لتخزين وإدارة والتعامل مع مجموعاتٍ من المتغيرات. تدعم لغة PHP المصفوفات أحادية ومتعددة الأبعاد، ويمكن أن ينتجها المستخدم بنفسه أو أن يستخدم دوالًا أخرى لإنشائها. توجد كذلك دوال متخصصة للتعامل مع قواعد البيانات وملأ المصفوفات من نواتج استعلامات قواعد البيانات، وتعيد الكثير من الدوال مصفوفاتٍ أيضًا. رجاءً تصفَّح نوع البيانات الخاص بالمصفوفات من هذا التوثيق للحصول على شرح تفصيلي عن كيفية استعمال المصفوفات في لغة PHP. انظر ...

الأخطاء في PHP

مقدمة لا مفرّ من الوقوع في الأخطاء مهما كنّا حريصين في كتابة الشيفرة. تبلغ PHP عن الأخطاء والتحذيرات والملاحظات التي تحدث بسبب المشاكل الحاصلة في وقت التشغيل، وتصبح عملية تنقيح الأخطاء (Debugging) أكثر سهولة عند معرفة كيفية الكشف عن هذه الأخطاء والتعامل معها. الأساسيات تبلّغ PHP عن الأخطاء الناجمة عن عدد من الأخطاء الداخلية، ويمكن الاستفادة من ذلك في الكشف عن عدد من الحالات المختلفة ويمكن عرضها و/أو تسجيلها حسب الحاجة. تقسم الأخطاء في PHP إلى أنواع مختلفة، وهناك قائمة ...

المراجع في PHP

المراجع (references) في PHP هي وسيلة للوصول إلى محتوى المتغير نفسه باستخدام أسماء مختلفة، والمراجع لا تشبه المؤشّرات في لغة C، فعلى سبيل المثال لا يمكن إجراء العمليات الحسابية الخاصّة بالمؤشّرات على المراجع، وهي ليست عناوين ذاكرة حقيقية، وهكذا. راجع الصفحة "ما هو غير المقصود بالمراجع" للمزيد من المعلومات. المراجع هي أسماء بديلة رمزية مجدولة (Symbol table aliases). لاحظ أنّ اسم المتغير ومحتواه مختلفان في لغة PHP؛ لهذا يمكن لنفس المحتوى أن يحمل اسمين مختلفين. وأقرب مثال على ذلك هو ...

else في PHP

(PHP 4, PHP 5, PHP 7) قد ترغب في كثير من الأحيان تنفيذ عبارة معينة عند تحقق شرط معين وتنفيذ عبارة أخرى في حال عدم تحقق الشرط. هنا يأتي دور else، والتي تعمل على تمديد عبارة if لتنفيذ عبارة أخرى في حال أدّى حساب عبارة if إلى النتيجة FALSE. على سبيل المثال تطبع الشيفرة التالية عبارة 'a is greater than b' إن كان المتغير ‎$a أكبر من المتغير ‎$b، وتطبع العبارة 'a is NOT greater than b' إن كان ‎$a ...

الاستثناءات في PHP

يتضمّن الإصدار الخامس من PHP نموذج استثناءات مشابهًا للغات البرمجية الأخرى. يمكن رمي الاستثناء والتقاطه في PHP، ويمكن إحاطة الشيفرة بكتلة try لتسهيل عملية التقاط الاستثناءات المحتملة، ويجب أن ترتبط بكل كتلة try إما كتلة catch أو finally واحدة على الأقل. يجب أن يكون كائن الاستثناء المرمي نسخة من الصنف Exception أو صنفًا متفرعًا منه، ويؤدي رمي كائن لا ينتمي إلى هذا الصنف إلى حدوث خطأ من نوع Fatal. الكتلة catch يمكن استخدام كتل catch متعدّدة لالتقاط أصناف مختلفة من ...

elseif في PHP

(PHP 4, PHP 5, PHP 7) كما هو واضح من الاسم فإنّ هذه العبارة هي مزيج من if و else، وكما هو الحال مع else يمكن توسيع عبارة if لتنفيذ عبارة أخرى في حال كانت نتيجة تعبير if هي FALSE. ولكن، على العكس من else، فإن elseif تنفذ ذلك التعبير البديل في حالة واحدة فقط وهي أن تكون نتيجة التعبير الشرطي المتعلق بعبارة elseif هي TRUE. فعلى سبيل المثال تعرض الشيفرة التالية عبارة 'a is bigger than b'، أو 'a ...

return في PHP

(PHP 4, PHP 5, PHP 7) تعيد تنفيذ البرنامج إلى الوحدة التي قامت بالاستدعاء، وسيستمر التنفيذ إلى التعبير الذي يلي تعبير الاستدعاء. إذا استدعيت عبارة return داخل الدالة فإنّها ستنهي تنفيذ الدالة على الفور وتعيد معاملها كقيمة لاستدعاء الدالة. تنهي return أيضًا تنفيذ عبارة eval()‎ أو ملف الشيفرة. إن استدعيت عبارة return من النطاق العام (global scope) فإنها تنهي عملية تنفيذ ذلك الملف. وإن كان ملف الشيفرة مضمنًا (included) أو مطلوبًا (required)، فإن التحكّم يعود إلى الملف المستدعي مرة أخرى. ...

include في PHP

(PHP 4, PHP 5, PHP 7) تعمل عبارة include على تضمين ومعالجة الملف المحدّد. ينطبق التوثيق التالي على عبارة require. تُضمّن الملفات بالاعتماد على المسار المعطى للعبارة، وفي حال عدم تحديد المسار، تأخذ include المسار المحدد في include_path. إن لم يكن الملف موجودًا في include_path ستتحقّق include في المجلّد الذي يحتوي على الشيفرة التي أجرت الاستدعاء وفي مجلد العمل الحالي قبل أن تطلق خطأً. تطلق بنية include تحذيرًا إن لم تتمكن من العثور على الملف، وتختلف في ذلك عن require ...

include_once في PHP

(PHP 4, PHP 5, PHP 7) تُضمِّن العبارة include_once الملفّ المحدد وتعالجه أثناء تنفيذ الشيفرة. هذه السلوك مشابه لعبارة include والفرق الوحيد هنا هو إن كانت شيفرة ذلك الملف مضمّنة من قبل فإنّها لن تُضمِّنَه مرة أخرى، وترجع include_once القيمة TRUE، وهذا السلوك متوقع من اسم العبارة. يمكن استخدام include_once في الحالات التي يمكن لنفس الملف أن يُضمَّن ويُعالَج لأكثر من مرة خلال مرحلة معيّنة من مراحل تنفيذ الشيفرة، وفي هذه الحالة يمكن تجنب بعض المشاكل مثل إعادة تعريف الدوال ...

break في PHP

(PHP 4, PHP 5, PHP 7) تنهي break تنفيذ حلقات for أو foreach أو while أو do-while أو بنية switch. تأخذ break معاملًا عدديًا اختياريًا يُحدّد من خلاله عدد البنى المتداخلة التي‏ يجب إيقاف تنفيذها. القيمة الافتراضية لهذا المعامل هي 1، والذي يعني إيقاف تنفيذ البنية الحالية فقط. <?php $arr = array('one', 'two', 'three', 'four', 'stop', 'five'); while (list(, $val) = each($arr)) { if ($val == 'stop') { break; /* يمكن أيضًا كتابة /* ...

المتغيرات في PHP

يكون التعبير عن المتغيرات في PHP باستخدام علامة $ متبوعة باسم المتغير والذي يكون حساسًا لحالة الأحرف. تتبع المتغيرات نفس القواعد المتبّعة للتسمية في PHP. إذ يبدأ اسم المتغير الصحيح بحرف أو بشرطة سفلية متبوعة بعدد غير محدد من الحروف أو الأرقام أو الشرطات السفلية. ولو أردنا استخدام التعابير النمطية (Regular Expression) للتعبير عن اسم المتغير فسيكون كالتالي: '‎‎[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*‎‎'. ملاحظة: في هذا الدليل الحرف هو كل ما يقع ضمن النطاق a-z و A-Z والبايتات من 127 إلى 255 (0x7f-0xff). ملاحظة: ...

switch في PHP

(PHP 4, PHP 5, PHP 7) تشبه عبارة switch سلسلةً من عبارات if مطبّقة على نفس التعبير. قد تحتاج في بعض الأحيان إلى مقارنة نفس المتغير (أو التعبير) مع قيم مختلفة (حالات cases)، وتنفيذ شيفرة مختلفة بالاعتماد على ذلك، وهذه هي وظيفة عبارة switch. ملاحظة: بخلاف بعض اللغات البرمجية، يمكن استخدام عبارة continue في switch وهي تعمل عمل العبارة break. إن كنت تستخدم switch داخل حلقة وأردت الانتقال إلى الدورة التالية في الحلقة التكرارية الخارجية، استخدم continue 2. ملاحظة: تؤدي ...

الدوال في PHP

الدوال المعرّفة من طرف المستخدم تتبع أسماء الدوالّ نفس القواعد المتبّعة في اللغة للتسمية. يبدأ الاسم الصحيح للدالة بحرف أو شرطة سفلية، متبوعًا بأيّ عددٍ من الحروف أو الأرقام أو الشرطات السفلية. ويمكن التعبير عن هذه الصيغة باستخدام التعابير النمطية بالصورة التالية: ‎[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*‎. معاملات الدوال يمكن تمرير المعلومات إلى الدوالّ بواسطة قائمة المعاملات argument list، وهي قائمة من التعابير المفصولة بالعلامة (,)، وتُعالج هذه المعاملات من اليسار إلى اليمين. إعادة القيم يمكن إعادة القيم باستخدام عبارة return الاختيارية، ويمكن إعادة أيّ نوع من ...

while في PHP

(PHP 4, PHP 5, PHP 7) تعد حلقات while التكرارية أبسط أنواع الحلقات في PHP، وتعمل بطريقة مماثلة لنظيرتها في لغة C، والصيغة الأساسية لعبارة while هي: while (expr) statement تؤدي عبارة while وظيفةً بسيطةً، وهي تنفيذ العبارة أو العبارات التي تحتضنها بصورة متكررة ما دامت العبارة الشرطية المرتبطة بحلقة while تؤول إلى TRUE. تتحقّق اللغة من قيمة التعبير في بداية كل دورة، لهذا لن يؤدي تغيير القيمة أثناء عملية التنفيذ إلى إيقاف الدورة بل ستكمل الشيفرة ...

الاستثناءات في PHP

يتضمّن الإصدار الخامس من PHP نموذج استثناءات مشابهًا للغات البرمجية الأخرى. يمكن رمي الاستثناء والتقاطه في PHP، ويمكن إحاطة الشيفرة بكتلة try لتسهيل عملية التقاط الاستثناءات المحتملة، ويجب أن ترتبط بكل كتلة try إما كتلة catch أو finally واحدة على الأقل. يجب أن يكون كائن الاستثناء المرمي نسخة من الصنف Exception أو صنفًا متفرعًا منه، ويؤدي رمي كائن لا ينتمي إلى هذا الصنف إلى حدوث خطأ من نوع Fatal. الكتلة catch يمكن استخدام كتل catch متعدّدة لالتقاط أصناف مختلفة من ...

include في PHP

(PHP 4, PHP 5, PHP 7) تعمل عبارة include على تضمين ومعالجة الملف المحدّد. ينطبق التوثيق التالي على عبارة require. تُضمّن الملفات بالاعتماد على المسار المعطى للعبارة، وفي حال عدم تحديد المسار، تأخذ include المسار المحدد في include_path. إن لم يكن الملف موجودًا في include_path ستتحقّق include في المجلّد الذي يحتوي على الشيفرة التي أجرت الاستدعاء وفي مجلد العمل الحالي قبل أن تطلق خطأً. تطلق بنية include تحذيرًا إن لم تتمكن من العثور على الملف، وتختلف في ذلك عن require ...

PHP/misc

هذه مجموعة من الدوال المتفرقة في لغة PHP، والتي لا تنتمي إلى التصنيفات الأخرى الموجودة في هذا التوثيق. connection_aborted()‎ تفحص الدالةconnection_aborted()‎ ‎ ما إذا كان العميل غير متصل. connection_status()‎ تحصل الدالةُ connection_status()‎ على bitfield لحالة الاتصال. constant()‎ تعيدُ الدالة constant()‎ قيمة ثابتٍ ما. ob_end_clean()‎ تنظف (تمسح) الدالة ob_end_clean()‎ المخزنَ المؤقت للإخراج وتوقف التخزين المؤقت للإخراج. ob_clean()‎ تنظف (تمسح) الدالة ob_clean()‎ المخزنَ المؤقت للإخراج. die()‎ تكافئ البنيةُ die البنيةَ exit()‎. eval()‎ تُقدِّر البنيةُ eval()‎ قيمة شيفرة PHP المُمثَّلة في سلسلةٍ نصيةٍ. exit()‎ تُخرج البنية exit()‎ رسالةً وتنهي البرنامج الحالي. get_browser()‎ تعيد الدالة get_browser()‎ الميزات التي يدعمها متصفح المستخدم. ...

while في PHP

(PHP 4, PHP 5, PHP 7) تعد حلقات while التكرارية أبسط أنواع الحلقات في PHP، وتعمل بطريقة مماثلة لنظيرتها في لغة C، والصيغة الأساسية لعبارة while هي: while (expr) statement تؤدي عبارة while وظيفةً بسيطةً، وهي تنفيذ العبارة أو العبارات التي تحتضنها بصورة متكررة ما دامت العبارة الشرطية المرتبطة بحلقة while تؤول إلى TRUE. تتحقّق اللغة من قيمة التعبير في بداية كل دورة، لهذا لن يؤدي تغيير القيمة أثناء عملية التنفيذ إلى إيقاف الدورة بل ستكمل الشيفرة ...

التعابير في PHP

تعدّ التعابير إحدى الوحدات البنائية الأكثر أهمية في PHP، ففي هذه اللغة كل ما تكتبه تقريبًا هو عبارة عن تعبير، لذا فإن أبسط وأدقّ تعريف للتعابير هو: "كلّ ما يمتلك قيمة". تعدّ الثوابت والمتغيرات أبسط أشكال التعابير، فعند كتابة ‎$a=5 فإننا نسند '5' إلى ‎$a. ومن الواضح أن '5' تمتلك القيمة 5، أو بعبارة أخرى فإن '5' هي تعبير قيمته 5. (في هذه الحالة '5' هو عدد صحيح ثابت). بعد إجراء عملية الإسناد هذه فإن المتوقع هو أن تكون قيمة ...

require_once في PHP

(PHP 4, PHP 5, PHP 7) عبارة require_once مطابقة للعبارة require باستثناء أن PHP ستتحقق مما إذا كان الملف مضمّنًا أم لا، وذلك لتجنّب تضمينه (require) مرة أخرى. راجع توثيق include_once للمزيد من المعلومات حول طريقة عمل ‎_once، والفرق بينها وبين الدوال التي لا تلحق بها هذه اللاحقة. مصادر صفحة require_once في توثيق PHP الرسمي.

التعابير في PHP

تعدّ التعابير إحدى الوحدات البنائية الأكثر أهمية في PHP، ففي هذه اللغة كل ما تكتبه تقريبًا هو عبارة عن تعبير، لذا فإن أبسط وأدقّ تعريف للتعابير هو: "كلّ ما يمتلك قيمة". تعدّ الثوابت والمتغيرات أبسط أشكال التعابير، فعند كتابة ‎$a=5 فإننا نسند '5' إلى ‎$a. ومن الواضح أن '5' تمتلك القيمة 5، أو بعبارة أخرى فإن '5' هي تعبير قيمته 5. (في هذه الحالة '5' هو عدد صحيح ثابت). بعد إجراء عملية الإسناد هذه فإن المتوقع هو أن تكون قيمة ...

عرض (500 السابقة | 500 التالية) (20 | 50 | 100 | 250 | 500).