نتائج البحث

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

البرمجة كائنية التوجه في PHP

بدءًا من الإصدار الخامس من اللغة، أعيدت كتابة نموذج الكائنات للحصول على أداء أفضل وإضافة المزيد من الميزات، وقد كان هذا من التغييرات الكبيرة في اللغة، إذ قدّم الإصدار الخامس نموذج مكتملًا للكائنات. ومن الميزات التي قدّمها الإصدار الخامس قابلية الرؤية (visibility)، الأصناف والتوابع المجرّدة (abstract) والنهائية (final)، المزيد من التوابع السحرية (magical methods)، الواجهات (interfaces)، الاستنساخ (cloning) والإشارة إلى الأنواع (typehinting). تعامل PHP الكائنات معاملة المراجع (references) أو المقابض (handles)، بمعنى أنّ كلّ متغيّر يتضمن كائنًا مرجعيًا وليس نسخة ...

التعابير البرمجية في روبي

تنشئ التعابير البرمجية في لغة روبي كائنات يمكنك استخدامها في برنامجك؛ هذه التعابير تتضمّن: القيم المنطقيّة و القيمة nil الأعداد السلاسل النصية الرموز المصفوفات جداول Hash المجالات التعابير النظامية بنى Proc القيم المنطقيّة و القيمة nil إنّ كلًا من nil و false تعبّران عن القيمة المنطقيّة الخطأ (false value). تُستخدم nil أحيانًا لتعبّر عن عدم وجود أيّة قيمة أو قيمة مجهولة، لكنّها تساوي false في العبارات الشرطيّة. أمّا true فهي القيمة المنطقيّة الصحيحة (true value)، وكلّ الكائنات عدا nil و ...

الواجهة البرمجية للتدويل في ريلز

توفّر جوهرة روبي I18n (اختزالٌ للمصطلح "التدويل" [internationalization]) التي تُشحن مع ريلز (بدءًا من الإصدار 2.2) إطارًا سهل الاستخدام وقابلًا للتوسعة لترجمة تطبيقك إلى لغة مخصصّة واحدة بخلاف الإنجليزية أو لتوفير دعم بلغات متعدّدة في تطبيقك. عادةً ما تعني عمليّة "التدويل" تجريد كل السلاسل النصية والبتات الخاصة الأخرى ذات العلاقة باللغة (مثل تنسيقات التاريخ أو العملة) من تطبيقك. تعني عملية "التوطين" توفير الترجمات والصيغ المحلية لهذه البتات. لذلك، يجب عليك في عمليّة تدويل تطبيقك ريلز: التأكّد من دعمك للواجهة البرمجية ...

تنسيق الشيفرات البرمجية في بايثون

يمكن كتابة (أو بعبارة أدق، تنسيق) معظم اللغات البرمجية بتنسيقات مختلفة، يكون بعضها مقروءًا أكثر من الآخر. وينصح دائمًا بكتابة شيفرات برمجية يمكن للأشخاص الآخرين قراءتها بسهولة، وأفضل طريقة لتحقيق ذلك هي اتباع تنسيق جميل في كتاب الشيفرات البرمجية. تتّبع معظم المشاريع المكتوبة بلغة بايثون دليل التنسيق PEP 8، والذي يشجّع على اعتماد تنسيق يمتاز بالمقروئية العالية والمظهر الجميل. يجب على كل مطوّر بلغة بايثون أن يطّلع على هذا الدليل، وندرج فيما يلي بعض النقاط المهمّة المستخلصة من هذا الدليل: ...

بنية البرمجة في لغة Kotlin

تعريف الحزم (Package) يُكتب توصيف الحزمة (package) في بداية الملف المصدريّ (source file) بالشكل الآتي: package my.demo import java.util.* // ... ولا يُشترط التوافق ما بين الحزمة (package) والمجلد الذي توجد فيه (directory)، إذ من الممكن أن تتوضع الملفات المصدريّة عشوائيًّا في نظام الملفات. المزيد عن الحزم (packages). تعريف الدوال (Function) إن كانت الدالة بمتحولين من نوع Int وتعيد قيمةً بنوع Int أيضًا، فسيصبح تعريفها بالشكل: fun sum(a: Int, b: Int): Int {   return a + b } أما الشيفرة الآتية فهي لتعريف دالةٍ باسم sum ...

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

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

التعبير البرمجي الفارغ في JavaScript

التعبير البرمجي الفارغ (empty statement) يُستخدَم لتجنب توفير تعبير برمجي في المواضع التي تتطلب فيها JavaScript تعبيرًا برمجيًا واحدًا على الأقل. البنية العامة ; الوصف التعبير الفارغ هو فاصلة منقوطة ; الذي يُشير إلى عدم وجود تعبير لتنفيذه حتى لو تطلبت JavaScript تعبيرًا أو أكثر؛ وفي المقابل، إذا كانت JavaScript تقبل باستخدام تعبير واحد فمن الممكن استخدم الأقسام الكتلية (block statement) لتجميع أكثر من تعبير برمجي. أمثلة قد يُستخدَم التعبير البرمجي الفارغ مع حلقات التكرار، لاحظ المثال الآتي الذي فيه ...

المقارنة بين لغتيّ البرمجة Java و Kotlin

بعض المواضيع في Java ومعالجتها في Kotlin عالجت لغة Kotlin العديد من المشاكل الموجودة في Java وهي: التحكُّم بالمرجعيّات الفارغة (null references) عبر نظام الأنواع لا وجود للأنواع الخامّ (raw types) تُعدُّ المصفوفات في Kotlin ثابتة (invariant) للدوال (functions) في Kotlin أنواع مناسبة وهذا ما يتعارض مع التحويلات SAM في Java التنوّع في موقع الاستخدام (use-site variance) دون الحاجة إلى المحارف البديلة (wildcards) لا وجود للاستثناءات المُتحقَّق منها (checked exceptions) في Kotlin ما تمتاز به Java ولا تدعمه Kotlin الاستثناءات ...

الواجهات البرمجية لتوقيت الأداء (Performance Timing API)

الاستقرار: 1- تجريبي. تقدم الواجهة البرمجية لتوقيت الأداء تطبيقًا لمواصفات W3C Performance Timeline. الغرض من  الواجهة البرمجية (API) هو دعم مجموعة من مقاييس الأداء عالية الدقة. والتي هي نفس واجهات الأداء المُطبّقة في متصفحات الويب الحديثة. const { PerformanceObserver, performance } = require('perf_hooks'); const obs = new PerformanceObserver((items) => { console.log(items.getEntries()[0].duration); performance.clearMarks(); }); obs.observe({ entryTypes: ['measure'] }); performance.mark('A'); doSomeLongRunningProcess(() => { performance.mark('B'); performance.measure('A to B', 'A', 'B'); }); الصنف: Performance أُضيف في الإصدار: 8.5.0. performance.clearMarks([name‎]‎)‎ أُضيفت في الإصدار: 8.5.0 name <string>‎ إذا ...

وراثة الأصناف في بايثون

تدعم بايثون شأنها في ذلك شأن أي لغة برمجية كائنية التوجه مفهوم الوراثة، وأبسط صيغة لتعريف صنف مشتق أو موروث من صنف آخر هي: class DerivedClassName(BaseClassName):     <statement-1>     .     .     .     <statement-N> يجب أن يكون الاسم BaseClassName معرّفًا في النطاق الذي يحتوي تعريف الصنف المشتق. ويمكن استخدام أي تعبير محلّ اسم الصنف الأساسي، ويمكن لهذا أن يكون مفيدًا عندما يكون الصنف الأساسي معرّفًا في وحدة أخرى على سبيل المثال: class DerivedClassName(modname.BaseClassName): يجري تنفيذ تعريف الصنف المشتق بنفس الطريقة ...

التابع method_missing في الصنف BasicObject في روبي

يُستدعى التابع method_missing من قِبل روبي عندما تُرسَل رسالةٌ إلى كائن لا يستطيع التعامل معها. بشكل افتراضي، يُطلق المفسِّر (interpreter) خطأً عندما يُستدعى هذا التابع. على أي حال، يمكن إعادة تعريف (override) هذا التابع للحصول على سلوك أكثر ديناميكية. إذا تقرر أنه لا يجب التعامل مع تابع معيّن، فيجب حينئذٍ استدعاء super حتى يتسنَّى للأصناف الأجداد (ancestors) الوصول إلى التابع المنشود. البنية العامة method_missing(symbol [, *args] ) → result المعاملات symbol رمزٌ للتابع المُستدعى. args الوسائط التي ستُمرَّر إلى التابع ...

الصنف ‎‎Any‎‎ في Kotlin

يعد الصنف Any الجذر الرئيسيّ في الهرميّة العامّة لأيّ صنفٍ مُستخدَمٍ في Kotlin؛ أي أنّ كلَّ صنفٍ سيكون له الصنف الأعلى (superclass)‏ Any. open class Any الدوال البانية <int> يعيد التابع Any()‎ نسخةً من الصنف Any الذي هو الجذر الرئيسيّ في الهرميّة العامّة لأيّ صنفٍ مُستخدَمٍ أثناء البرمجة في Kotlin؛ أي أنّ كلَّ صنفٍ سيكون له الصنف الأعلى (superclass)‏ Any. الدوال equals تتحقق الدالة equals()‎ إذا ما كان الكائن المُمرّر إليها يساوي الكائن الذي استدعيت معها. hashCode تعيد الدالة hashCode()‎ قيمة الشيفرة hash code الخاصّة بالكائن الذي ...

وحدات ‎ECMAScript في Node.js

الاستقرار: 1-قيد التجريب تحوي Node.js دعمًا لوحدات ES اعتمادًا على Node.js EP من أجل وحدات ES. ليست جميع مزايا EP كاملةً بعد، وستُحضَر كدعمٍ وتنفيذٍ من أجل VM عندما يكون جاهزًا. لا تزال رسائل الخطأ في طور التحسين والتطوير. عملية التفعيل يمكن استعمال الراية ‎--experimental-modules‎ لتفعيل المزايا التي تمكن من تحميل وحدات ESM. متى ما ضُبِط ذلك، يمكن تحميل الملفات التي تنتهي باللاحقة ‎.mjs‎ كوحدات ES. node --experimental-modules my-app.mjs المزايا المزايا المدعومة يمكن أن يكون الوسيط CLI لنقطة الإدخال الرئيسية ...

الدالة super()‎ في بايثون

تعيد الدّالة super()‎ كائنًا وسيطًا يُفوّض استدعاءات التّوابع إلى صنف أبٍ أو صنف شقيق للصّنف الذي استُدعيَت منه الدّالة. هذا مُفيد للوصول إلى التّوابع الموروثة التي أعيدت كتابتها في صنف مُعيّن. ترتيب البحث يكون هو نفسه التّرتيب المُستخدم من طرف الدّالة getattr()‎ لكنّ النّوع type‎ المُعطى يُتجاهَل. البنية العامة super([type[, object-or-type]]) المعاملات type النّوع الذي ستقوم الدّالة super()‎ بتفويض استدعاءات التّوابع إلى صنف أبٍ أو صنف شقيق له. تعرض الخاصيّة __mro__ الخاصّة بالصّنف type ترتيب البحث عن التوابع (method resolution ...

الأصناف في بايثون

تعدّ الأصناف وسيلة لجمع البيانات والعمليات في بوتقة واحدة، ويؤدي إنشاء صنف جديد إلى تكوين نوع جديد من الكائنات، ما يتيح إنشاء نسخ (instances) من ذلك النوع. يمكن أن ترتبط بكلّ صنف مجموعة من الخاصيات (attributes) التي تساعد في متابعة حالة الصنف، إضافة إلى مجموعة من التوابع (methods) التي تساعد في تعديل حالة ذلك الصنف. لو أجرينا مقارنة بين بايثون ولغات البرمجة الأخرى، سنجد بأنّ بايثون تضيف قدرًا ضئيلًا من الصياغات الجديدة إلى الأصناف؛ إذ تعتمد بايثون الأساليب المتّبعة في ...

واجهة برمجة التطبيق (API) ذات المستوى الأعلى في React

إنّ الكائن React هو نقطة الدخول إلى مكتبة React. إن حمّلت React عن طريق العنصر ‎<script>‎ فستكون هذه الواجهة ذات المستوى الأعلى متوفرة عبر الكائن العام React. وإن استخدمت ES6 مع npm فتستطيع كتابة ‎import React from 'react'‎. إن استخدمت ES5 مع npm فتستطيع كتابة ‎var React = require('react')‎. لمحة عامة المكوّنات تُتيح لك مكوّنات React تقسيم واجهة المستخدم إلى قطع مستقلة قابلة لإعادة الاستخدام والتفكير بكل قطعة لوحدها. يُمكِن تعريف مكوّنات React عن طريق أخذ صنف فرعي من React.Component ...

استعمال ريلز لإنشاء تطبيقات ذات واجهة برمجية فقط

في هذا الدليل ستتعلم: ما تقدمه ريلز للتطبيقات ذات الواجهة البرمجية فقط. كيفية ضبط ريلز للبدء دون أي ميزات للمتصفح. كيفية تحديد البرامج الوسيطة (middleware) التي تريد تضمينها. كيفية تحديد الوحدات لاستخدامها في وحدة التحكم الخاصة بك. ما الذي يعنيه «تطبيق ذو واجهة برمجية فقط»؟ تقليديًا، عندما قال الناس أنهم استخدموا ريلز كـ "واجهة برمجية"، فقد كان يعني توفير واجهة برمجية يمكن الوصول إليها برمجيًا جنبًا إلى جنب مع تطبيق الويب الخاص بهم. على سبيل المثال، يوفر GitHub واجهة برمجية ...

التعبير ‎#include في أردوينو

يُستعمَل التعبير ‎#include لتضمين مكتبات خارجية في شيفرتك. هذا يساعد المبرمج على الوصول إلى مجموعة أكبر من مكتبات C القياسية (التي هي مجموعة من الدوال المُنشَأ مسبقًا) والمكتبات التي كُتبَت خصِّيصًا لأردوينو. المرجع الرئيسي لمكتبات C الخاصة بالمتحكم AVR (هو أحد متحكمات Atmel الذي بنيت عليه أردوينو) تجده هنا. البنية العامة #include <library's name> ملاحظة: لا تنسَ إضافة الرمز # لأنَّه ضروري. أمثلة يوضح المثال التالي كيفية تضمين مكتبة تُستعمَل لوضع البيانات في ذاكرة البرنامج (أي الذاكرة flash) بدلًا من الذاكرة ...

الطلبات HTTP في Laravel

الوصول إلى الطلب عليك التلميح إلى نوع الصنف Illuminate\Http\Request في وحدة تحكمّك للحصول على نسخة الطلب HTTP الحالي عبر إضافة الاعتماديّة. ستُضاف نسخة الطلب الوارد تلقائيًّا بواسطة حاوي الخدمات: <?php namespace App\Http\Controllers; use Illuminate\Http\Request; class UserController extends Controller { /** * خزّن مستخدمًا جديدًا * * @param Request $request * @return Response */ public function store(Request ...

الدالة ‎‎iterator()‎ في Kotlin

تسمح الدالة iterator()‎ بالتكرار (iterate) على كائنٍ ديناميكيّ (dynamic) في الحالات الآتية: إن كان لديه دالة تكراريّة (iterator function). إن كان مصفوفةً (array). إن كان نسخةً (instance) من Kotlin.collections.Iterable. البنية العامة operator fun dynamic.iterator(): Iterator<dynamic> بيئة التشغيل المطلوبة: JS. ويُلاحظ وجود الكلمة المفتاحيّة operator للدلالة على أنّ هذه الدالة مرتبطٌ بمعامل التكرار (iteration operator). انظر أيضًا الدالة ()asDynamic: تعيد قيمة الكائن الذي استدعيت عبره على شكل قيمةٍ من النوع الديناميكيّ (dynamic type). مصادر صفحة الدالة iterator()‎ في التوثيق الرسميّ للمكتبة القياسيّة ...

الدالة ‎‎iterator()‎ في Kotlin

تسمح الدالة iterator()‎ بالتكرار (iterate) على كائنٍ ديناميكيّ (dynamic) في الحالات الآتية: إن كان لديه دالة تكراريّة (iterator function). إن كان مصفوفةً (array). إن كان نسخةً (instance) من Kotlin.collections.Iterable. البنية العامة operator fun dynamic.iterator(): Iterator<dynamic> بيئة التشغيل المطلوبة: JS. ويُلاحظ وجود الكلمة المفتاحيّة operator للدلالة على أنّ هذه الدالة مرتبطٌ بمعامل التكرار (iteration operator). انظر أيضًا الدالة ()asDynamic: تعيد قيمة الكائن الذي استدعيت عبره على شكل قيمةٍ من النوع الديناميكيّ (dynamic type). مصادر صفحة الدالة iterator()‎ في التوثيق الرسميّ للمكتبة القياسيّة ...

الدالة ‎‎asDynamic()‎ في Kotlin

تعيد الدالة asDynamic()‎ قيمة الكائن الذي استدعيت عبره على شكل قيمةٍ من النوع الديناميكي (dynamic type)، الذي يُسمَح بإسناده إلى أي متغيّر أو تمريره كمتغيّر وسيط (argument) أيًّا كان نوعه. بيئة التشغيل المطلوبة:  JS البنية العامة inline fun Any?.asDynamic(): dynamic يُلاحَظ وجود الكلمة المفتاحية inline للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions). القيم المعادة تعاد قيمة من النوع الديناميكي (dynamic type). انظر أيضًا الدوال المباشرة (inline functions) في لغة Kotlin. مصادر صفحة الدالة ...

الدالة ‎‎asDynamic()‎ في Kotlin

تعيد الدالة asDynamic()‎ قيمة الكائن الذي استدعيت عبره على شكل قيمةٍ من النوع الديناميكي (dynamic type)، الذي يُسمَح بإسناده إلى أي متغيّر أو تمريره كمتغيّر وسيط (argument) أيًّا كان نوعه. بيئة التشغيل المطلوبة:  JS البنية العامة inline fun Any?.asDynamic(): dynamic يُلاحَظ وجود الكلمة المفتاحية inline للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions). القيم المعادة تعاد قيمة من النوع الديناميكي (dynamic type). انظر أيضًا الدوال المباشرة (inline functions) في لغة Kotlin. مصادر صفحة الدالة ...

مجالات الأسماء والنطاقات في بايثون

مجال الأسماء هو رابط بين الأسماء والكائنات، وتستخدم معظم مجالات الأسماء في الوقت الحاضر كقواميس. ومن الأمثلة على مجالات الأسماء: مجموعة الأسماء الداخلية (وتتضمن الدوال مثل abs()‎، وأسماء الاستثناءات الداخلية)، والأسماء العامة (global) في وحدة معينة، والأسماء المحلية (local) في بنية دالّة ما. إضافة إلى ما سبق، يمكننا أن نعدّ مجموعة خاصيات (attributes) كائن معيّن مجالًا للأسماء أيضًا. والمقصود بالخاصيات هنا كل ما يأتي بعد النقطة، فعلى سبيل المثال في التعبير z.real تعدّ real خاصية للكائن z. كذلك تعدّ الإشارات ...

الاستخدام الخطأ لمبادئ البرمجة كائنية التوجه (Object-Orientation Abusers)

من مشاكل الشيفرات أيضًا التطبيقُ الخطأ وغير المكتمل لمبادئ البرمجة كائنية التوجّه (Object-Oriented)، مثل: استخدام الأصناف البديلة (alternative) ذات الواجهات (interfaces) المختلفة المشكلة: التطابق بالمهام ما بين صنفين ولكن بأسماءٍ مختلفةٍ لتوابعهما. الحل: حذف أحد الصنفين بعد تنفيذ إحدى الحلول الآتية: إعادة تسمية التوابع (methods) لتصبح متطابقةً بكافّة الأصناف البديلة، أو توحيد التوقيع (signature) وتعريف الاستخدام ما بين التوابع (إمّا بنقل التابع أو إضافة المعاملات أو دمج التوابع عبر المعاملات)، أو استخراج صنفٍ أعلى وجعلهما صنفين فرعيين له (إن كان التطابق جزئيًا). الوراثة الفائضة (refused bequest) ...

الخاصية overflow-y

الخاصية overflow-y في CSS تُحدِّد إن كان سيتم اقتصاص (clip) المحتوى، أو سيُعرَض شريط تمرير (scroll bar)، أو سيُعرَض ما يزيد من محتوى العنصر الكتلي فوقه أو تحته. بطاقة الخاصية القيمة الابتدائية visible تُطبَّق على عناصر block-level و inline-block غير المُستبدَلة (non-replaced). قابلة للوراثة لا قابلة للتحريك لا القيمة المحسوبة كما حُدِّدَت. /* لن يتم اقتصاص المحتوى */ overflow-y: visible; /* سيتم اقتصاص المحتوى دون عرض شريط تمرير */ overflow-y: hidden; /* سيتم اقتصاص المحتوى مع عرض شريط تمرير */ overflow-y: scroll; /* ترك الأمر بيد ...

الخاصية overflow-x

الخاصية overflow-x في CSS تُحدِّد إن كان سيتم اقتصاص (clip) المحتوى، أو سيُعرَض شريط تمرير (scroll bar)، أو سيُعرَض ما يزيد من محتوى العنصر الكتلي على يمينه أو يساره. بطاقة الخاصية القيمة الابتدائية visible تُطبَّق على عناصر block-level و inline-block غير المُستبدَلة (non-replaced). قابلة للوراثة لا قابلة للتحريك لا القيمة المحسوبة كما حُدِّدَت. /* لن يتم اقتصاص المحتوى */ overflow-x: visible; /* سيتم اقتصاص المحتوى دون عرض شريط تمرير */ overflow-x: hidden; /* سيتم اقتصاص المحتوى مع عرض شريط تمرير */ overflow-x: scroll; /* ترك الأمر ...

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

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

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

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

المعامل []‎ الخاص بالصنف Thread في روبي

يعدُّ المعامل [] مرجعًا للخاصيات (Attribute Reference)، إذ يُعيد قيمة متغير محلي الليف fiber) local variable، أو الليف الأصلي للمهمة الفرعية الحالية إن لم يكن المتغير موجودًا داخل ليف) باستخدام إما رمز أو سلسلة نصية. إن لم يكن المتغير المعطى (انظر فقرة البنية العامة) موجودًا، فستعاد nil. [ Thread.new { Thread.current["name"] = "A" }, Thread.new { Thread.current[:name] = "B" }, Thread.new { Thread.current["name"] = "C" } ].each do |th| th.join puts "#{th.inspect}: #{th[:name]}" end‎ هذا سوف ينتج: ...

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

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

معلومات إضافية عن روبي

هل تساءلت يومًا لماذا روبي مشهورة إلى هذا الحد؟ يقول المعجبون بها أنَّها لغة جميلة وذات بنية متقنة. ويقولون أيضًا أنَّها لغة عملية وسهلة الاستعمال. فماذا تعطي وبماذا تتمتع؟ مثالية منشئ لغة روبي حققت لغة روبي توازنًا دقيقًا بين لغات البرمجة. عمل منشئ هذا اللغة - الياباني Yukihiro “Matz” Matsumoto - على دمج أجزاءٍ من لغات البرمجة المفضلة لديه (Perl، و Smalltalk، و Eiffel، و Ada، و Lisp) لإنشاء لغة جديدة تحقق التوازن بين البرمجة الوظيفية (functional programming) والبرمجة الأمرية ...

التحميل الزائد في PHP

تقديم ميزة التحميل الزائد في PHP القدرة على إنشاء الخصائص والتوابع بصورة ديناميكية، وتعالج هذه العناصر الديناميكية بواسطة التوابع السحرية (magic methods) التي يمكن استخدامها في الصنف لأداء العديد من الوظائف. تنفّذ توابع التحميل الزائد عند التفاعل مع الخصائص أو التوابع غير المصرّح عنها أو غير المرئية ضمن النطاق الحالي. سيستخدم هذا القسم مصطلحي "خاصية يتعذر الوصول إليها" و"تابع يتعذر الوصول إليه" للإشارة إلى حالة التصريح وقابلية الرؤية هذه. يجب تعريف جميع توابع التحميل الزائد كتوابع من نوع public. ملاحظة: ...

التحميل الزائد في PHP

تقديم ميزة التحميل الزائد في PHP القدرة على إنشاء الخصائص والتوابع بصورة ديناميكية، وتعالج هذه العناصر الديناميكية بواسطة التوابع السحرية (magic methods) التي يمكن استخدامها في الصنف لأداء العديد من الوظائف. تنفّذ توابع التحميل الزائد عند التفاعل مع الخصائص أو التوابع غير المصرّح عنها أو غير المرئية ضمن النطاق الحالي. سيستخدم هذا القسم مصطلحي "خاصية يتعذر الوصول إليها" و"تابع يتعذر الوصول إليه" للإشارة إلى حالة التصريح وقابلية الرؤية هذه. يجب تعريف جميع توابع التحميل الزائد كتوابع من نوع public. ملاحظة: ...

الخاصية overflow

الخاصية overflow في CSS تُحدِّد إن كان سيتم اقتصاص (clip) المحتوى، أو سيُعرَض شريط تمرير (scroll bar)، أو سيُعرَض ما يزيد من محتوى العنصر الكتلي عند تجاوزه أبعاد الحاوية الكتلية التي هو فيها. بطاقة الخاصية القيمة الابتدائية visible تُطبَّق على عناصر block-level و inline-block غير المُستبدَلة (non-replaced). قابلة للوراثة لا قابلة للتحريك لا القيمة المحسوبة كما حُدِّدَت. /* لن يتم اقتصاص المحتوى */ overflow: visible; /* سيتم اقتصاص المحتوى دون عرض شريط تمرير */ overflow: hidden; /* سيتم اقتصاص المحتوى مع عرض شريط تمرير ...

الدالة functools.lru_cache()‎ في بايثون

الدّالة functools.lru_cache()‎ مُزخرفٌ يُحيط دالّة بكائن قابل للاستدعاء مُتذكّر (memoizing callable). الكائن المُتذكِّر يحتفظ بعددٍ من آخر الاستدعاءات حسب قيمة المُعامل maxsize. ويُمكن أن تختصر الوقت إن كانت دالّة تأخذ الكثير من الوقت تُستدعَى بنفس المُعاملات عدّة مرّات. ولأنّ النّتائج تُخبّأ (cache) في قاموس، فيجب على المُعاملات المُمرّرة للدّالة المُزخرَفة أن تكون قابلة للتّجزئة (hashable). البنية العامة @functools.lru_cache(maxsize=128, typed=False) المعاملات maxsize عدد الاستدعاءات التي ستُخبّأ، إن مُرّرت له القيمة None، تُعطّل ميّزة LRU (الأقلّ استخدامًا مؤخّرًا، Least recently used) ويُمكن ...

الدالة ()‎counter في Sass

الدالة ()counter موجودة فقط كحل بديل للمشكلة content: counter الموجودة في متصفح IE7. تعمل بشكل مماثل مع أي دالة من دوال CSS باستثناء أنَّها تتجنب إضافة مسافات بين فواصل الوسائط. البنية العامة counter($args...) القيم المعادة تُعاد سلسلة نصيَّة. أمثلة المثال 1: استخدام الدالة counter()‎. counter(item, ".") // counter(item,".") انظر أيضًا الدالة counters()‎: موجودة فقط كحل بديل للمشكلة content: counter الموجودة في متصفح IE7. الدالة call()‎: تستدعي دالة بشكل ديناميكي. مصادر قسم الدالة counter في صفحة الدوال في توثيق Sass الرسمي.

الدالة ()‎counters في Sass

الدالة ()counters موجودة فقط كحل بديل للمشكلة content: counter الموجودة في متصفح IE7. تعمل بشكل مماثل مع أي دالة من دوال CSS باستثناء أنَّها تتجنب إضافة مسافات بين فواصل الوسائط. البنية العامة counters($args...) القيم المعادة تُعاد سلسلة نصية. أمثلة مثال عن استخدام الدالة counters()‎: counters(item, ".") // counters(item,".") انظر أيضًا الدالة counter()‎: موجودة فقط كحل بديل للمشكلة content: counter الموجودة في متصفح IE7. الدالة call()‎: تستدعي دالة بشكل ديناميكي. مصادر قسم الدالة counters في صفحة الدوال في توثيق Sass الرسمي.

التابع ‎‎jQuery.holdReady()‎‎ في jQuery

jQuery.holdReady( hold )‎ القيم المعادة يعيد القيمة undefined. الوصف يعلِّق هذا التابع تنفيذ الحدث ready في jQuery أو يحرِّره إن كان معلَّقًا. jQuery.holdReady( hold )‎ أُضيفت مع الإصدار: 1.6. hold قيمةٌ منطقيَّةٌ (Boolean) تحدِّد إن كان يراد تعليق تنفيذ الحدث ready أم إطلاقه للعمل بعد أن كان معلقًا. يعمل التابع ‎$.holdReady()‎ على تأجيل تنفيذ استدعاء الحدث ready. سيستخدم هذه الميِّزة المتطورة عادةً محمِّلات السكربت الديناميكيَّة (dynamic script loaders) التي تريد تحميل شيفرة JavaScript إضافيَّة -مثل إضافات jQuery- قبل السماح للحدث ...

التابع ‎‎jQuery.holdReady()‎‎ في jQuery

jQuery.holdReady( hold )‎ القيم المعادة يعيد القيمة undefined. الوصف يعلِّق هذا التابع تنفيذ الحدث ready في jQuery أو يحرِّره إن كان معلَّقًا. jQuery.holdReady( hold )‎ أُضيفت مع الإصدار: 1.6. hold قيمةٌ منطقيَّةٌ (Boolean) تحدِّد إن كان يراد تعليق تنفيذ الحدث ready أم إطلاقه للعمل بعد أن كان معلقًا. يعمل التابع ‎$.holdReady()‎ على تأجيل تنفيذ استدعاء الحدث ready. سيستخدم هذه الميِّزة المتطورة عادةً محمِّلات السكربت الديناميكيَّة (dynamic script loaders) التي تريد تحميل شيفرة JavaScript إضافيَّة -مثل إضافات jQuery- قبل السماح للحدث ...

الدالة ()‎call في Sass

تستدعي الدالة ()call دالة محدَّدة بشكل ديناميكي سواء كانت هذه الدالة مُعرّفة من قبل المستخدم، أو مُضمّنةً في لغة Sass، أو دالة CSS. ستمرِّر هذه الدالة كل الوسائط -بما فيها الوسائط المُسمّاة (keyword arguments)- إلى الدالة المراد استدعاؤها. البنية العامة call($function, $args...) المعاملات ‎$function الدالة التي ترغب في استدعائها. ‎$args الوسائط التي ستُمرّر إلى الدالة ‎$function. أمثلة يبيّن المثال الآتي استخدام الدالة call()‎ لضبط قيمة اللون (color): .selector { color: call(rgb, 10, 100, 255); // #0a64ff } سيُصرّف المثال السابق ...

الدالة type()‎ في بايثون

تعيد الدّالة type()‎ نوع الكائن المُعطى إن مُرّر مُعامل واحد لها. وتعيد كائن نوعٍ (type object) جديد إن مُرّرت لها ثلاثة مُعاملات. البنية العامة type(object) type(name, bases, dict) المعاملات تقبل الدّالة type()‎ إمّا مُعاملًا واحدًا فقط، أو ثلاثة مُعاملات كما هو واضح في البنية العامّة أعلاه. عند استدعائها بمُعامل واحد فقط، ستُعيد الدّالة نوع الكائن المُمرّر. أمّا عند الاستدعاء بثلاثة مُعاملات، فسيُعاد كائن نوعٍ جديد. وهو طريقة ديناميكيّة لإنشاء الأصناف كبديل للجملة class. object عند استدعائها بمُعامل واحد فقط، يُمثّل هذا ...

الدالة types.resolve_bases()‎ في بايثون

تحلّل الدالة مدخلات (ترتيب تحليل التوابع MRO) بصورة ديناميكية وكما هو محدّد في PEP 560. ملاحظة: هذه الدالة جديدة في الإصدار 3.7 من اللغة. البنية العامة types.resolve_bases(bases) المعاملات bases الأصناف الأساسية المراد تحليلها. القيمة المعادة تبحث هذه الدالة عن العناصر في الأصناف المعطاة في المعامل bases والتي لا تكون نسخًا من الصنف type، وتعيد الدالة صفًّا يُستبدل فيه كل كائن مماثل ولا يملك التابع __mro_entries__ بنتيجة استدعاء هذا التابع بعد فكّ تحزيمها. أما إن كان الصنف المعطى في المعامل bases ...

الدالة types.new_class()‎ في بايثون

تنشئ هذه الدالة ديناميكيًا كائن صنف باستخدام صنف ميتا (metaclass) المناسب. ملاحظة: هذه الدالة جديدة في الإصدار 3.3 من اللغة. البنية العامة ‎types.new_class(name, bases=(), kwds=None, exec_body=None) المعاملات name اسم الصنف المراد إنشاؤه. bases الأصناف الأساسية التي سيرث منها الصنف الجديد (حسب الترتيب). kwds المعاملات المفتاحية (مثل صنف ميتا). exec_body استدعاء خلفي callback يُستخدم لإضافة نطاق الأسماء الخاصّ بالصنف المنشئ حديثًا. يجب أن يأخذ نطاق الأسماء الخاصّ بالصنف كمعامل وحيد وأن يحدّث نطاق الأسماء مباشرة بمحتويات الصنف. في حال عدم تقديم ...

PHP/Topics

الضبط كيفية ضبط لغة PHP عبر مختلف أنواع ملفات الضبط، وطرائق تعديلها. بنية اللغة تبيان أنواع وسوم لغة PHP، وطريقة دمجها مع HTML، وشرح بعض خصائصها البنيوية (ومن بينها التعليقات). أنواع البيانات لا يعيّن المبرمج نوع المتغير عادةً، بل تُعيِّنُه لغة PHP أثناء التنفيذ بالاعتماد على محتوى المتغير المستخدم. القيم المنطقية (boolean) القيم المنطقية (boolean) من أبسط الأنواع، فالتعبير المنطقي يُعبِّر عن صحّة تعبيرٍ ما، فإما أن تكون قيمة التعبير صحيحةً TRUE أو خطأً FALSE. الأعداد الصحيحة (integer) العدد الصحيح هو عدد من ...

الدالة ()‎if في Sass

تعيد الدالة ()if إحدى القيمتين الممرَّرتين إليها اعتمادًا على تحقُّق شرط معين. تشبه تمامًا التعليمة ‎@if، إذ تُعدّ جميع القيم صحيحةً باستثناء القيمة false والقيمة null. البنية العامة if($condition, $if-true, $if-false) المعاملات ‎$condition الشرط المراد التحقق من صحته. ‎$if-true القيمة التي ستُعاد إن كان الشرط ‎$condition محقَّقًا. ‎$if-false القيمة التي ستُعاد إن لم يكن الشرط ‎$condition محقَّقًا. القيم المعادة تُعاد القيمة ‎$if-true أو القيمة ‎$if-false بناءً على تحقق الشرط ‎$condition. أمثلة مثال عن استخدام الدالة if()‎ لإضافة إطار border للعنصر ...

التابع ‎‎.clone()‎‎ في jQuery

‎.clone( [withDataAndEvents ] )‎ القيمة المعادة كائن jQuery. الوصف يُستخدَم التابع ‎.clone()‎ في إنشاء نسخة عميقة (deep copy) من مجموعة العناصر المُطابِقة. ‎.clone( [withDataAndEvents ] )‎ أضيفت في الإصدار: 1.0. withDataAndEvents (القيمة الافتراضة: false) قيمة منطقيّة (Boolean)، وتُشير ما إذا كان يجب نسخ مُعالِجات الأحداث مع العناصر. بدءًا من إصدار jQuery 1.4 أصبحت بيانات العنصر تُنسَخ أيضًا. ‎.clone( [withDataAndEvents ] [, deepWithDataAndEvents ] )‎ أضيفت في الإصدار: 1.5. withDataAndEvents (القيمة الافتراضية: false) قيمة منطقيّة (Boolean)، وتُشير ما إذا كان يجب ...

الدالة types.prepare_class()‎ في بايثون

تحسب هذه الدالة صنف ميتا المناسب وتنشئ نطاق الأسماء. البنية العامة types.prepare_class(name, bases=(), kwds=None) المعاملات name اسم الصنف المراد إنشاؤه. bases الأصناف الأساسية التي سيرث منها الصنف الجديد (حسب الترتيب). kwds المعاملات المفتاحية (مثل صنف ميتا). القيمة المعادة تعيد الدالة صفًّا يحمل ثلاث قيم هي: metaclass, namespace, kwds. metaclass هي صنف ميتا المناسب، و namespace هي نطاق الأسماء المحضّر للصنف، وkwds هي نسخة محدّثة من قيمة المعامل kwds بعد حذف أي مدخل من مدخلات 'metaclass'. وإن لم يمرّر المعامل kwds ...

الدالة ()‎get_function في Sass

تعيد الدالة ()get_function مرجعًا إلى دالة من أجل استدعائها لاحقًا باستخدام الدالة ()call. البنية العامة get_function($name, $css: false) المعاملات ‎$name اسم الدالة المراد الحصول على مرجع لها. ‎$css يحدِّد هذا المعامل ما إذا كانت ستُعاد دالة خاصة بلغة CSS. إن كانت قيمة هذا المعامل هي FALSE، فقد يُشير مرجع الدالة إلى دالةٍ معرّفة في ملف الأنماط أو مضمَّنة في بيئة المضيف؛ وإن كانت قيمته TRUE، فسيشير إلى دالة خاصة بلغة CSS. القيم المعادة يُعاد مرجعٌ للدالة ذات الاسم ‎$name. أمثلة ...

Rails/Topics

ابدأ من هنا البدء مع ريلز يغطي هذا الدليل بدء وتشغيل ريلز. بعد قراءة هذا الدليل، ستتعلم: كيف تثبّت ريلز وتُنشئ تطبيق ريلز جديد وتربط تطبيق ريلز بقاعدة بيانات، وما هو التخطيط العام لتطبيق ريلز، والمبادئ الأساسية للنمط MVC والتصميم RESTful، وكيف تولد سريعًا أجزاء البداية لتطبيق ريلز. المكتبات الأساسية Action Cable تعمل المكتبة Action Cable على دمج WebSockets مع بقية تطبيق ريلز الخاص بك بسهولة، إذ تسمح بكتابة الميزات ذات الوقت الحقيقي (real-time features) المنشودة في روبي وفي نفس ...

وحدة reprlib‎ في بايثون

تقدّم وحدة reprlib وسيلة لإنتاج تمثيلات للكائنات مع إمكانية تحديد حجم السلسلة النصية الناتجة. تستخدم هذه الوحدة في منقّح بايثون وقد تكون مفيدة في سياقات أخرى أيضًا. الواجهة البرمجية لوحدة reprlib تقدّم هذه الوحدة صنفًا ونسخة صنف ودالة: الصنف reprlib.Repr يقدّم هذا الصنف خدمات تنسيق يمكن الاستفادة منها في إنشاء دوال مشابهة للدالة الداخلية repr()‎. ولتجنّب إنشاء تمثيلات ذات أحجام كبيرة جدًّا، فإنّ أحجام أنواع البيانات المستخدمة في هذا الصنف تكون محدّدة. نسخة الصنف reprlib.aRepr نسخة من الصنف Repr تستخدم ...

Document.createNSResolver()‎

يُنشئ التّابع Document.createNSResolver()‎ كائنًا من النّوع XPathNSResolver الذي يستبين مجالات الأسماء مع احترام التعريفات في النّطاق (scope) لعقدة مُحدَّدة. البنية العامة nsResolver = document.createNSResolver(node); node‎ العقدة المراد استعمالها كسياقٍ لحلّ مجال الأسماء. nsResolver‎ القيمة المعادة، وهي كائنٌ من النّوع XPathNSResolver. ملاحظات يتبنّى التّابع أي عقدة DOM لحلّ مجالات الأسماء لكي يتمّ تقدير (evaluate) تعبير XPath بسهولة حسب سياق العقدة ومكان ظهورها في المستند. هذا المتبنِّي يعمل كالتّابع lookupNamespaceURI‎ المعرّف في مواصفة DOM Level 3 على العقد في حلّ رابط URI ...

الثوابت المعرَّفة مسبقًا في قسم التعامل مع نظام الملفات في PHP

الثوابت المذكورة في الأسفل مُعرَّفةٌ باستعمال هذا الملحق، وستُتاح هذه الثوابت فقط عند توفُّر الملحق إمّا عندما تُفسَّر (compiled) إلى لغة PHP أو عند التحميل الديناميكي وقت التنفيذ. الاسم النوع الوصف SEEK_SET integer SEEK_CUR integer SEEK_END integer LOCK_SH integer LOCK_EX integer LOCK_UN integer LOCK_NB integer GLOB_BRACE integer GLOB_ONLYDIR integer GLOB_MARK integer GLOB_NOSORT integer GLOB_NOCHECK integer GLOB_NOESCAPE integer GLOB_AVAILABLE_FLAGS integer PATHINFO_DIRNAME integer PATHINFO_BASENAME integer PATHINFO_EXTENSION integer PATHINFO_FILENAME integer منذ إصدار PHP 5.2.0. FILE_USE_INCLUDE_PATH integer البحث عن اسم الملف filename في المسار ...

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

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

العنصر

قائمة التصفح