نتائج البحث
اذهب إلى التنقل
اذهب إلى البحث
البرمجة كائنية التوجه في 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 ...
العنصر
يُستخدَم العنصر <script> لتضمين أو الإشارة إلى سكربت قابل للتنفيذ. مثال عن كيفية استخدام هذا العنصر لتضمين سكربت خارجي في HTML 4 و XHTML: <script type="text/javascript" src="javascript.js"></script>
أما في HTML5 فالفرق بسيط ألا وهو حذف الخاصية type امتثالًا لنصيحة مواصفة HTML5: <script src="javascript.js"></script>
طريقة كتابة سكربت مُضمَّن في المستند: <script>
alert("مرحبًا");
</script>
بطاقة العنصر تصنيفات المحتوى عنصر تنظيمي أو عنصر عادي أو عنصر وصفي. المحتوى المسموح السكربتات الديناميكية مثل text/javascript. الوسم المختصر لا يمكن حذف أيّ من وسمَي البداية أو النهاية. العناصر ...
تبديل القيمة إلى مرجع (Change Value to Reference)
المشكلة وجود العديد من النُسَخ المتماثلة من صنفٍ واحدٍ تحتاج إلى استبدال كائنٍ واحدٍ بها. الحل تحويل الكائنات المتماثلة إلى كائن مرجعي واحد. مثال قبل إعادة التصميم مخطط يوضح وجود العديد من النُسَخ المتماثلة من الصنف Order: مخطط يوضح وجود العديد من النُسَخ المتماثلة من صنفٍ Order. بعد إعادة التصميم تحويل الكائنات المتماثلة إلى كائن مرجعي واحد: تحويل الكائنات المتماثلة إلى كائن مرجعي واحد. لم إعادة التصميم؟ في العديد من الأنظمة، يمكن تصنيف الكائنات على أنها إمَّا قيم أو مراجع. ...
عوامل الأنواع في PHP
تستخدم instanceof لتحديد ما إذا كان المتغير كائنًا مهيّئًا من صنف معين: المثال 1: استخدام instanceof مع الأصناف <?php
class MyClass
{
}
class NotMyClass
{
}
$a = new MyClass;
var_dump($a instanceof MyClass);
var_dump($a instanceof NotMyClass);
?>
يعطي المثال السابق المخرجات التالية: bool(true)
bool(false)
يمكن استخدام instanceof كذلك لتحديد ما إذا كان المتغير كائنًا مهيّئًا من صنف موروث من صنف آخر: المثال 2: استخدام instanceof مع الأصناف الموروثة <?php
class ParentClass
{
}
class MyClass extends ParentClass
{
}
$a = new MyClass;
var_dump($a instanceof MyClass);
var_dump($a instanceof ParentClass);
?>
يعطي المثال السابق المخرجات التالية: bool(true)
bool(true)
يمكن استخدام عامل النفي ...
عوامل الأنواع في PHP
تستخدم instanceof لتحديد ما إذا كان المتغير كائنًا مهيّئًا من صنف معين: المثال 1: استخدام instanceof مع الأصناف <?php
class MyClass
{
}
class NotMyClass
{
}
$a = new MyClass;
var_dump($a instanceof MyClass);
var_dump($a instanceof NotMyClass);
?>
يعطي المثال السابق المخرجات التالية: bool(true)
bool(false)
يمكن استخدام instanceof كذلك لتحديد ما إذا كان المتغير كائنًا مهيّئًا من صنف موروث من صنف آخر: المثال 2: استخدام instanceof مع الأصناف الموروثة <?php
class ParentClass
{
}
class MyClass extends ParentClass
{
}
$a = new MyClass;
var_dump($a instanceof MyClass);
var_dump($a instanceof ParentClass);
?>
يعطي المثال السابق المخرجات التالية: bool(true)
bool(true)
يمكن استخدام عامل النفي ...
استخدام لغة Kotlin في نطاق JavaScript
تتيح لغة Kotlin إمكانيّة استهداف لغة JavaScript من خلال تحويل (transpiling) شيفرات Kotlin إلى ما يماثلها في JavaScript ؛ إذ تستهدف بالوقت الحاليّ معيارECMAScript 5.1، ومن المُخطَّط له أيضًا التوافق مع معيار ECMAScript 2015 لاحقًا. عند استخدام لغة Kotlin بهدف كتابة شيفرات JavaScript فستُحوَّل الشيفرات المكتوبة بلغة Kotlin (بعدِّها جزءًا من المشروع والمكتبة القياسيّة في Kotlin) إلى شيفرة JavaScript، ولكنّ هذا لا يشمل أيًّا ممّا يتعلَّق ببيئة JDK أو JVM أو Java أو أيّ من منصّاتها أو مكتباتها المُستخدَمة، ويُستبعَد ...
التوجيه من الخارج إلى الداخل في ريلز
يغطي هذا الدليل الميزات التي يواجهها المستخدم في عمليات التوجيه في ريلز. بعد قراءة هذا الدليل، ستعرف: كيفية تفسير الشيفرة في config/routes.rb. كيفية بناء المسارات الخاصة بك باستخدام إما أسلوب الحيلة (resourceful style) المفضل أو طريقة المطابقة (match method). كيفية الإعلان عن معاملات المسار الموجه، والتي تمرر إلى إجراءات وحدة التحكم (controller actions). كيفية إنشاء المسارات وعناوين URL تلقائيًا باستخدام مساعدي المسار الموجه. التقنيات المتقدمة مثل إنشاء قيود وتثبيت نقاط نهاية Rack. الغرض من توجيه المسارات في ريلز يتعرف جهاز ...
Python/Topics
بنية اللغة بيان للبنية العامة للغة بايثون وبعض الأمور العامة مثل التعليقات وتسمية المعرّفات وغيرها. مفسر بايثون يستخدم مفسر بايثون لمعالجة الشيفرات المكتوبة بها، وهو يقبل عددًا من الخيارات، ويمكن تشغيله في الوضع التفاعلي. أنواع البيانات القيمة المنطقية (boolean) القيمتان المنطقيتان اللتان تدعمهما بايثون هما True و False وهما كائنان ثابتان (Constant objects) يعبران عن صحّة تعبير ما، فإمّا أن يكون صحيحًا True أو خطأً False. الأعداد الصحيحة (int) العدد الصحيح integer هو أي عدد موجب أو سالب لا يتضمن ...
JavaScript/Topics/Statements
في هذا القسم جميع التعابير البرمجية الموجودة في لغة JavaScript. التحكم في التنفيذ block تُستخدَم الأقسام الكتلية لتجميع عدِّة تعابير برمجية معًا، ويُعرَّف القسم بزوجين من الأقواس المعقوفة {}. break يإنهاء حلقة التكرار الحالية أو التعبير switch أو label، وستنقل تنفيذ البرنامج إلى التعبير البرمجي الذي يلي التعبير الذي انتهى. continue تجاوز تنفيذ التعابير البرمجية في التكرار الحالي (iteration) في حلقة التكرار الحالية أو حلقة التكرار المسماة (عبر لافتة)، وسيستمر تنفيذ الحلقة بدءًا من التكرار التالي. Empty يُستخدَم لتجنب توفير تعبير برمجي في ...
توحيد الأجزاء الشرطية المكررة (Consolidate Duplicate Conditional Fragments)
المشكلة شيفرة برمجية متطابقة موجودة في جميع فروع الشَرطيات. الحل نقل الشيفرة البرمجية خارج الشَرطية. مثال قبل إعادة التصميم استدعاء وتنفيذ الدالة ()send في نهاية جميع فروع الكتلة if الشرطية سواءً أكان الشرط محققًا أم لا: في لغة Java: if (isSpecialDeal()) {
total = price * 0.95;
send();
}
else {
total = price * 0.98;
send();
}
في لغة C#: if (IsSpecialDeal())
{
total = price * 0.95;
Send();
}
else
{
total = price * 0.98;
...
المتغيرات المتغيرة في PHP
قد تحتاج في بعض الأحيان إلى استخدام أسماء متغيّرة للمتغيرات، بمعنى أن تعيين اسم المتغيّر واستخدامه يكون بصورة ديناميكية. لتعريف المتغيرات العادية نستخدم الصيغة التالية: <?php
$a = 'hello';
?>
أما المتغيّر المتغير (variable variable) فيأخذ قيمة متغيّر معين ويستخدمه كاسم لمتغير آخر. في المثال السابق يمكن استخدام الكلمة hello كاسم لمتغير آخر وذلك باستخدام علامتي $ عند التعبير عن المتغير: <?php
$$a = 'world';
?>
في هذه النقطة هناك متغيّران معرّفان ومخزنان في شجرة رموز PHP (أي PHP symbol tree): الأول هو $a ...
المتغيرات المتغيرة في PHP
قد تحتاج في بعض الأحيان إلى استخدام أسماء متغيّرة للمتغيرات، بمعنى أن تعيين اسم المتغيّر واستخدامه يكون بصورة ديناميكية. لتعريف المتغيرات العادية نستخدم الصيغة التالية: <?php
$a = 'hello';
?>
أما المتغيّر المتغير (variable variable) فيأخذ قيمة متغيّر معين ويستخدمه كاسم لمتغير آخر. في المثال السابق يمكن استخدام الكلمة hello كاسم لمتغير آخر وذلك باستخدام علامتي $ عند التعبير عن المتغير: <?php
$$a = 'world';
?>
في هذه النقطة هناك متغيّران معرّفان ومخزنان في شجرة رموز PHP (أي PHP symbol tree): الأول هو $a ...
التابع ENV.each_value في روبي
يجلب التابع each_value قيمة كل متغير من متغيرات البيئة بالتتابع، ويرسلها إلى الكتلة البرمجية المعطاة. في حال عدم تمرير كتلة برمجية، فسيعيد التابع كائنًا من النوع Enumerator. البنية العامة each_value { |value| } → Hash
each_value → Enumerator
القيمة المعادة يعاد كائن من النوع Hash بعد تمرير قيمة كل متغير من متغيرات البيئة إلى الكتلة المعطاة على حدة، أو يعاد كائن من النوع Enumerator في حال عدم تمرير أي كتلة برمجية. انظر أيضًا التابع each : يجلب أسماء وقيم متغيرات البيئة بالتتابع، ...
التابع ENV.each_key في روبي
يجلب التابع each_key أسماء متغيرات البيئة بالتتابع، ويرسلها فُرادَى إلى الكتلة البرمجية المعطاة. في حال عدم تمرير كتلة برمجية فسيعيد كائنًا من النوع Enumerator. البنية العامة each_key { |name| } → Hash
each_key → Enumerator
القيمة المعادة يعاد كائن من النوع Hash بعد تمرير اسم كل متغير من متغيرات البيئة إلى الكتلة المعطاة على حدة، أو يعاد كائن من النوع Enumerator في حال عدم تمرير أي كتلة برمجية. انظر أيضًا التابع each: يجلب أسماء وقيم متغيرات البيئة بالتتابع، ويرسلها فُرادى إلى ...
if...else في JavaScript
التعبير البرمجي الشرطي (if statement) يُستخدَم لتنفيذ تعبير برمجي معيّن عندما يكون الشرط محققًا، وإذا كان الشرط غير محققٍ فسيُنفِّذ تعبيرًا برمجيًا آخر. البنية العامة if (condition)
statement1
[else
statement2]
condition تعبيرٌ يمكن أن يكون محققًا (true) أو غير محقق (false). statement1 التعبير البرمجي الذي سيُنفَّذ عندما يكون الشرط condition محققًا، ويمكن أن يكون هذا التعبير أيّ تعبيرٍ صالحٍ بما في ذلك تعابير if المتشعبة، ويمكن إنشاء قسم كتلي { ... } لتجميع أكثر من تعبير برمجي ...
التابع ENV.each_pair في روبي
يجلب التابع each_pair الزوج اسم/قيمة لكل متغير من متغيرات البيئة بالتتابع، ويرسله إلى الكتلة البرمجية المعطاة. في حال عدم تمرير كتلة برمجية إلى التابع، فسيُعيد كائنًا من النوع Enumerator. البنية العامة each_pair { |name, value| } → Hash
each_pair → Enumerator
القيمة المعادة يعاد كائن من النوع Hash بعد تمرير الزوج اسم/قيمة لكل متغير من متغيرات البيئة إلى الكتلة المعطاة على حدة، أو يعاد كائن من النوع Enumerator في حال عدم تمرير أي كتلة برمجية. انظر أيضًا التابع each: يجلب أسماء ...
التابع ENV.each في روبي
يجلب التابع each أسماء وقيم متغيرات البيئة بالتتابع، ويرسلها فُرادى إلى الكتلة البرمجية المعطاة. في حال عدم تمرير كتلة برمجية إلى التابع، فسيعيد كائنًا من النوع Enumerator. البنية العامة each { |name, value| } → Hash
each → Enumerator
each_pair { |name, value| } → Hash
each_pair → Enumerator
القيمة المعادة يعاد كائن من النوع Hash بعد تمرير اسم وقيمة كل متغير من متغيرات البيئة إلى الكتلة المعطاة على حدة، أو يعاد كائن من النوع Enumerator في حال عدم تمرير أي كتلة برمجية. ...
switch في JavaScript
التعبير البرمجي switch يُستخدَم لمطابقة قيمة تعبير برمجي باستخدام عبارة case، ثم يُنفِّذ التعابير البرمجية المرتبطة معها. البنية العامة switch (expression) {
case value1:
// التعابير البرمجية التي ستُطبِّق
// عندما تُطابِق قيمةُ التعبير قيمةَ الحالة
[break;]
case value2:
// التعابير البرمجية التي ستُطبِّق
// عندما تُطابِق قيمةُ التعبير قيمةَ الحالة
[break;]
...
case valueN:
...
do...while في JavaScript
التعبير البرمجي do...while يُنشِئ حلقة تكرار تُنفِّذ تعبيرًا برمجيًا معيّنًا إلى أن يصبح الشرط غير محقق (false)، وسيتم التحقق من الشرط بعد تنفيذ التعبير البرمجي، مما يؤدي إلى تنفيذ التعبير البرمجي المُعيّن مرةً واحدةً على الأقل. البنية العامة do
statement
while (condition);
statement التعبير البرمجي الذي سيُنفَّذ مرةً واحدةً على الأقل وسيُعاد تنفيذه في كل مرة يكون فيها الشرط محققًا (أي true)؛ ولتنفيذ أكثر من تعبير برمجي فاستخدام الأقسام الكتلية (block statement) { ... } لتجميع هذا التعابير. condition ...
الدالة session_module_name() في PHP
(PHP 4, PHP 5, PHP 7) تعيد الدالة session_module_name() أو تضبط الوحدة البرمجية المستخدمة للجلسة الحالية. الوصف string session_module_name ([ string $module ] )
تعيد هذه الدالة أو تضبط الوحدة البرمجية المستخدمة للجلسة الحالية. المعاملات module إذا تَم تحديد قيمة للمعامل، سيُستعمل بدلًا من الوحدة البرمجية المستخدمة للجلسة الحالية. القيم المعادة تُعيد الدالة الوحدة البرمجية المستخدمة للجلسة الحالية. مصادر صفحة الدالة ()session_module_name في توثيق PHP الرسمي.
for في JavaScript
التعبير البرمجي for يُنشِئ حلقة تكرار تتألف من ثلاثة تعبيرات برمجية اختيارية تحيط بها أقواس وتفصل بينها فواصل منقوطة، ويليها تعبيرٌ برمجيٌ (وعادةً يكون قسمًا كتليًا [block statement]) سيُنفَّذ في كل تكرار للحلقة. البنية العامة for ([initialization]; [condition]; [final-expression])
statement
initialization تعبير (يتضمن تعابير الإسناد) أو تصريح عن متغير، ويُستخدَم عادةً لتهيئة متغير العدّاد؛ وهذا التعبير قد يُصرِّح اختياريًا عن متغيرات جديدة باستخدام الكلمة المحجوزة var؛ وهذه المتغيرات ليست محليةً وتابعةً لحلقة التكرار، وإنما ستكون موجودةً في نفس ...
التابع Integer.times في روبي
يكرر التابع times تنفيذ الكتلة البرمجية المعطاة عددًا محدَّدًا من المرات مع تمرير قيم عددية ابتداءً من الصفر وحتى العدد الذي يسبق العدد المعطى. في حال عدم تمرير أي كتلة برمجية، فسيُعاد كائن من النوع Enumerator. البنية العامة times {|i| block } → self
times → an_enumerator
القيمة المعادة في حال تمرير كتلة برمجية، يعاد ناتج تنفيذ هذه الكتلة بعد تمرير أعداد تبدأ من الصفر وحتى القيمة int - 1 (إذ يكون int هو العدد المعطى) إليها. أما ...
صيغ متنوعة في روبي
سنتطرق في هذه الصفحة إلى شرح بقية الصيغ والبنى المستعملة في روبي والتي لم تُشمَل في الأقسام السابقة. ستجد هنا شرحًا حول الصيغة المستعملة في إنهاء التعبيرات البرمجية في روبي، وكيفية استعمال المسافات البادئة بالإضافة إلى شرح الكلمات المفتاحية alias، و undef، و ?defined، و BEGIN، و END. إنهاء تعبير برمجي يعدّ السطر الجديد في لغة روبي إنهاءًا للتعبير البرمجيّ السابق. وإذا انتهى السطر بعملية أو قوس مفتوح أو فاصلة أو ما شابه، فسيستمرّ التعبير البرمجيّ إلى السطر التالي. كما ...
while في JavaScript
التعبير البرمجي while يُنشِئ حلقة تكرار تُنفِّذ تعبيرًا برمجيًا معيّنًا طالما كان الشرط محققًا (true)، وسيتم التحقق من الشرط قبل تنفيذ التعبير البرمجي. البنية العامة while (condition)
statement
condition تعبير سيتم التحقق من صحته قبل كل تكرار، وإذا كانت قيمة الشرط condition هي true فسيُنفَّذ التعبير البرمجي statement، وعندما تصبح قيمة الشرط condition مساويةً للقيمة false فسينتقل التحكم إلى التعبير البرمجي الذي يلي حلقة while. statement التعبير البرمجي الذي سيُنفَّذ طالما كان الشرط محققًا؛ ولتنفيذ أكثر من تعبير برمجي ...
try...catch في JavaScript
التعبير البرمجي try...catch يُستخدَم لتجربة قسم من التعابير البرمجية، ويُحدِّد طريقةً لمعالجة الاستثناءات إن رُمِيَت. البنية العامة try {
try_statements
}
[catch (exception_var_1) {
catch_statements_1
}]
...
[catch (exception_var_2) {
catch_statements_2
}]
[finally {
finally_statements
}]
try_statements التعابير البرمجية التي ستُنفَّذ والتي قد ترمي استثناءً. catch_statements_1 و catch_statements_2 التعابير البرمجية التي ستُنفَّذ إذا رُمي استثناءٌ في قسم try. exception_var_1 و exception_var_2 مُعرِّف يُستخدَم لتخزين قيمة كائن الاستثناء (exception object) المرتبط مع قسم catch. finally_statements التعابير البرمجية التي ستُنفَّذ بعد إكمال ...
التابع Array.map في روبي
يستدعي التابع map كتلة برمجية محدَّدة مع كل عنصر من عناصر مصفوفة ثمَّ يضع الناتج الذي تعيده هذه الكتلة لكل عنصر في مصفوفة جديدة وتعيدها. إن لم تمرَّر أية كتلة إلى التابع map، فسيعيد كائنًا من النوع Enumerator. البنية العامة map { |item| block } → new_ary
map → Enumerator
القيم المعادة تعاد مصفوفة جديدة تحوي ناتج تطبيق الكتلة block على كل عنصر من عناصر المصفوفة المعطاة، أو يعاد كائنٌ من النوع Enumerator إن لم تعطَ الكتلة block. أمثلة أمثلة ...
تقديم التوكيد (Introduce Assertion)
المشكلة لكي يعمل جزء من الشيفرة البرمجية بشكل صحيح، يجب أن تتحقق بعض الشروط أو تكون القيم صحيحة. الحل استبدل هذه الافتراضات بنقاط تحقق خاصة بالتوكيد. مثال قبل إعادة التصميم تعريف دالة تعيد قيمة عددية - ثمتِّل حد النفقات - مع افتراض تحقق أحد أمرين دون التأكد من هما: في لغة Java: double getExpenseLimit() {
// يجب أن يكون إما حدًا للنفقات أو مشروعًا أساسيًا
return (expenseLimit != NULL_EXPENSE) ?
expenseLimit:
primaryProject.getMemberExpenseLimit();
}
في ...
Node.js/Topics
طريقة الاستعمال وتشغيل الأمثلة (Usage & Example) تبيّن هذه الصفحة طريقة استعمال Node.js وكيفية تشغيل الأمثلة الخاصة بها. اختبارات التوكيد (Assertion Testing) توفِّر الوحدة assert مجموعةً من اختبارات التوكيد البسيطة التي يمكن استعمالها للتأكد من الثوابت (invariants). الخطافات غير المتزامنة (async_hooks) توفِّر الوحدة async_hooks واجهة برمجية (API) لتسجيل دوال ردود النداء التي تتعقَّب دورة حياة (lifetime) الموارد غير المتزامنة (asynchronous resources) المُنشأَة داخل تطبيقات Node.js. الصنف Buffer أُنشِئ الصنف Buffer ليكون جزءًا من واجهة Node.js البرمجيَّة من أجل التعامل مع المجاري الثمانيَّة (octet streams) ...
JavaScript/Topics
الكائنات العامة في هذا القسم جميع الكائنات العامة المُضمَّنة في لغة JavaScript، إضافةً إلى جميع الخاصيات والدوال التابعة لها. الخاصيات العامة هذه الخاصيات العامة تُعيد قيمةً بسيطةً، فهي لا تُمثِّل دوالًا أو خاصياتٍ تابعة لأحد الكائنات. Infinity NaN undefined null الدوال العامة هذه الدوال العامة -أي التي تستدعى في النطاق العام بدل استدعائها على كائن بعينه- تُعيد نتائجها إلى التعبير البرمجي الذي استدعاها. eval() isFinite() isNaN() parseFloat() parseInt() decodeURI() decodeURIComponent() encodeURI() encodeURIComponent() escape() unescape() الكائنات الأساسية هذه هي الكائنات الأساسية ...
التابع Array.collect في روبي
يستدعي التابع collect كتلة برمجية محدَّدة مع كل عنصر من عناصر مصفوفة ثمَّ يعيد مصفوفة جديدة تحوي القيم التي تعيدها تلك الكتلة. إن لم يمرَّر أي شيء إلى هذا التابع، فسيعيد كائنًا من النوع Enumerator. البنية العامة collect { |item| block } → new_ary
collect → Enumerator
القيم المعادة تعاد مصفوفة جديدة تحوي القيم التي تعيدها الكتلة block عند تطبيقها على كل عنصر من عناصر المصفوفة المعطاة، أو يعاد كائنٌ من النوع Enumeratorإن لم تمرَّر الكتلة block. أمثلة أمثلة على ...
التابع Array.reverse_each في روبي
يشبه التابع reverse_each التابع each تمامًا باستثناء أنَّه يطبق الكتلة البرمجية على العناصر بدءًا من العنصر الأخير وحتى العنصر الأول. إن لم تمرَّر أيَّة كتلة إلى التابع reverse_each، فسيُعيد كائنًا من النوع Enumerator. البنية العامة reverse_each { |item| block } → ary
reverse_each → Enumerator
القيم المعادة تعاد المصفوفة نفسها المعطاة بعد تطبيق الكتلة block على كل عنصر من عناصرها بدءًا من العنصر الأخير وحتى العنصر الأول، أو يعاد كائنٌ من النوع Enumerator إن لم تعطَ الكتلة block. أمثلة أمثلة على ...
التابع Array.each في روبي
يستدعي التابع each كتلة برمجية محدَّدة مع كل عنصر من عناصر مصفوفة، إذ تمرَّر قيمة ذلك العنصر كوسيط إلى الكتلة ثمَّ يعيد المصفوفة نفسها المعطاة. إن لم تمرَّر أيَّة كتلة إلى التابع each، فسيُعيد كائنا من النوع Enumerator. البنية العامة each { |item| block } → ary
each → Enumerator
القيم المعادة تعاد المصفوفة نفسها المعطاة بعد تطبيق الكتلة block على قيمة كل عنصر من عناصرها، أو يعاد كائنٌ من النوع Enumeratorإن لم تعطَ الكتلة block. أمثلة مثالٌ على استخدام ...
undefinedفي JavaScript
الخاصية العامة undefined تُمثِّل القيمة الأوليّة undefined في JavaScript. سمات الخاصية undefined قابلة للكتابة لا قابلة للإحصاء لا قابلة للضبط لا البنية العامة undefined
الوصف الخاصية undefined هي خاصيةٌ للكائن العام (global object) أي أنها متغيرٌ في المجال العام، والقيمة الابتدائية للخاصية undefined هي نوع البيانات الأوليّ undefined. الخاصية undefined غير قابلة للضبط وغير قابلة للكتابة في المتصفحات الحديثة (بدءًا من معيار ECMAScript 5)، لكن مع ذلك حاول تجنّب الكتابة عليها. المتغيرات التي لم تُسنَد لها قيمةٌ سيكون نوعها هو ...
الأنواع الأساسية في TypeScript
مقدمة علينا أن نتمكن من العمل مع أنواع بسيطة من البيانات لتكون برامجنا مُفيدة، مثل الأعداد (numbers)، والسلاسل النصية (strings)، الهياكل (structures)، القيم المنطقية (boolean values)، وغيرها من أنواع البيانات. تدعم TypeScript تقريبًا نفس الأنواع التي تدعمها لغة JavaScript، إضافة إلى نوعٍ جديدٍ للثوابت المتعددة (enumeration type) للمساعدة على بناء تطبيقات أفضل. القيم المنطقية (boolean) القيمتان true وfalse من أكثر أنواع البيانات بساطة، وتُسمى في JavaScript وTypeScript بالقيمة المنطقية، أو النوع boolean. let isDone: boolean = false;
الأعداد (number) كما ...
اللافتات label في JavaScript
التعبير البرمجي label يمكن أن يُستخدَم مع التعبير البرمجي break أو continue، وهو يوضع قبل التعابير البرمجية لإضافة لافتة (مُعرِّف) لها يمكن الإشارة إليها. لاحظ أنَّ من غير الشائع استخدام حلقات تكرار مع لافتات (labels)، وتُستخدَم عادةً الدوال بدلًا القيام بقفزات بين حلقات التكرار. البنية العامة label :
statement
label لافتة للتعبير البرمجي، ويمكن أن تكون أيّ مُعرِّف في JavaScript صالح (وليس كلمةً محجوزةً). statement التعابير البرمجية التي ستُضاف اللافتة إليها، ويمكن استخدام التعبير البرمجي break مع أيّ ...
Python/types
تقدّم هذه الوحدة عددًا من الدوال المساعدة لإنشاء أنواع بيانات جديدة بصورة ديناميكية، إضافة إلى أنّها تعرّف أسماءً لبعض أنواع الكائنات التي يستخدمها مفسّر بايثون المعياري، ولكنّها ليست كائنات داخلية مثل int أو str، إلى جانب أنّ هذه الوحدة تقدم بعض الأصناف والدوال المساعدة الخاصة ببعض الأنواع، والتي لا تعدّ أساسية بما يكفي لتصبح أصنافًا ودوالّ داخلية. إنشاء الأنواع ديناميكيًا تقدّم هذه الوحدة ثلاث دوالّ تساعد في إنشاء أنواع البيانات ديناميكيًا: الدالة types.new_class() تنشئ هذه الدالة ديناميكيًا كائن صنف باستخدام ...
تبسيط التعابير الشرطية (Simplifying Conditional Expressions)
تزداد البنية المنطقية للشروط تعقيدًا مع مرور الوقت، لذا هنالك الكثير من التقنيات لمواجهة هذا التعقيد وتبسيطه وهي: تجزئة الشَرطيات (Decompose Conditional) المشكلة: يوجد شَرط مُعقد (if-then/else أو switch). الحل: فصل الأجزاء المعقدة من الشَرط إلى توابع منفصلة: الشرط، و then و else. توحيد التعبير الشرطي (Consolidate Conditional Expression) المشكلة: وجود عدة شروط تؤدي إلى نفس النتيجة أو الإجراء. الحل: توحيد جميع هذه الشروط في تعبير وحيد. توحيد الأجزاء الشرطية المكررة (Consolidate Duplicate Conditional Fragments) المشكلة: شيفرة برمجية متطابقة موجودة في جميع فروع الشَرطيات. الحل: ...
التابع Process.argv0 في روبي
يعيد التابع argv0 اسم الشيفرة البرمجية التي يجري تنفيذها. لا تتأثر القيمة المعادة عبر إسناد قيمة جديدة إلى 0$. ظهر هذا التابع أول مرة في الإصدار 2.1 في روبي وكان يُعدُّ متغيِّرًا عامًّا حرًّا عرضه هو جلب اسم الشيفرة البرمجية. البنية العامة argv0 → frozen_string
القيمة المعادة تعاد سلسلة نصية مجمَّدة تمثِّل اسم الشيفرة البرمجية التي في قيد التنفيذ. انظر أيضًا التابع abort: ينهي تنفيذ العملية مباشرةً بشكل فعَّال عبر استدعاء Kernel.exit(false). مصادر قسم التابع argv0 في الصنف Process في توثيق روبي ...
التابع block_given? الخاص بالصنف Kernel في روبي
يتحقق التابع block_given? إذا كان yield سينفذ كتلةً برمجيةً في السياق الحالي. الشكل iterator? صار شبه مهمل. البنية العامة block_given?→ true or false
القيمة المعادة تُعاد القيمة true إذا كان yield سينفذ كتلة برمجية في السياق الحالي. أمثلة مثال على استخدام التابع block_given?: def try
if block_given?
yield
else
"no block"
end
end
try #=> "no ...
الأقسام الكتلية في JavaScript
الأقسام الكتلية (block statement) تُستخدَم لتجميع عدِّة تعابير برمجية معًا، ويُعرَّف القسم بزوجٍ من الأقواس المعقوفة {}، وقد يُضاف قبله لافتة (label). البنية العامة قسم كتلي دون لافتة: {
StatementList
}
قسم كتلي مع لافتة: LabelIdentifier: {
StatementList
}
StatementList التعابير البرمجية المجمَّعة ضمن القسم الكتلي. LabelIdentifier لافتة label اختيارية يمكن استخدامها لتسهيل التعرّف بصريًا على القسم، أو كوجهة للتعبير break. الوصف تسمح الأقسام الكتلي لك باستخدام أكثر من تعبير برمجي في المواضع التي تتوقع JavaScript أن تتلقى تعبيرًا برمجيًا وحيدًا؛ ...
التابع ENV.select في روبي
يعيد التابع select نسخة من البيئة (environment) تضم المدخلات التي حقَّقت شرطًا معيَّنًا. في حال عدم تمرير أي كتلة برمجية إلى التابع، فسيعيد كائنًا من النوع enumerator. البنية العامة select { |name, value| } → Hash
select → Enumerator
القيمة المعادة يُعاد كائن من النوع Hash يحوي نسخة من البيئة تضم المدخلات (entries) التي أعيدت القيمة true معها عند تمريرها إلى الكتلة البرمجية. وفي حال عدم تمرير أية كتلة برمجية، فسيُعاد كائن من النوع enumerator. انظر أيضًا التابع inspect: يعيد محتوى البيئة (environment) ...
التابع iterator? الخاص بالصنف Kernel في روبي
يتحقق التابع iterator? إذا كان yield سينفذ كتلة برمجية في السياق الراهن. لقد أصبح الشكل iterator? مهملًا إلى حد ما. البنية العامة iterator?→ true or false
القيمة المعادة تعاد القيمة true إذا كان yield سينفذ كتلة برمجية في السياق الراهن. وإلا فستعاد false. أمثلة مثال على استخدام التابع iterator?: def try
if block_given?
yield
else
"no block"
end
end
try ...
التابع Array.replace في روبي
يبدِّل التابع replace محتوى المصفوفة الممرَّرة إليه مكان محتوى المصفوفة المستدعاة معه مع تغيير طولها إن دعت الحاجة لذلك. البنية العامة replace(other_ary) → ary
المعاملات other_ary المصفوفة التي ستحل محتوياتها مكان كامل محتويات المصفوفة المعطاة. القيم المعادة تعاد المصفوفة نفسها المعطاة بعد استبدال محتوى المصفوفة other_ary بمحتواها. أمثلة أمثلة على استخدام التابع replace: a = [ "a", "b", "c", "d", "e" ]
a.replace([ "x", "y", "z" ]) #=> ["x", "y", "z"]
a ...
التابع Array.collect! في روبي
يستدعي التابع !collect كتلة برمجية محددة مع كل عنصر من عناصر مصفوفة ثم يضع القيمة التي أعادتها تلك الكتلة مكان العنصر الذي استدعيت معه. إن لم يمرَّر أي شيء إلى هذا التابع، فسيعيد كائنا من النوع Enumerator. البنية العامة collect! {|item| block } → ary
collect! → Enumerator
القيم المعادة تعاد المصفوفة نفسها المعطاة بعد تبديل القيمة الجديدة التي تعيدها الكتلة block عند تطبيقها على كل عنصر من عناصر تلك المصفوفة مكان القيمة القديمة لذلك العنصر، أو يعاد كائنٌ من ...
تجزئة الشَرطيات (Decompose Conditional)
المشكلة يوجد شَرط مُعقد (if-then/else أو switch). الحل فصل الأجزاء المعقدة من الشَرط إلى توابع منفصلة: الشرط، then و else. مثال قبل إعادة التصميم وجود شرط معقد ناتج عن دمج شرطين باستعمال المعامل || الثنائي في البنية if: في لغة Java: if (date.before(SUMMER_START) || date.after(SUMMER_END)) {
charge = quantity * winterRate + winterServiceCharge;
}
else {
charge = quantity * summerRate;
}
في لغة C#: if (date < SUMMER_START || date > SUMMER_END)
{
charge = quantity * winterRate + winterServiceCharge;
}
else ...
الخاصية text-justify
الخاصية text-justify في CSS تُعرِّف طريقة توزيع النص إذا كانت الخاصية text-align مضبوطةً إلى القيمة justify. بطاقة الخاصية القيمة الابتدائية auto تُطبَّق على العناصر السطرية، وخلايا الجداول. قابلة للوراثة نعم قابلة للتحريك لا القيمة المحسوبة كما حُدِّدت. /* كلمات محجوزة */
text-justify: none;
text-justify: auto;
text-justify: inter-word;
text-justify: inter-character;
/* قيم عامة */
text-justify: inherit;
text-justify: initial;
text-justify: unset;
أمثلة مثال عن استخدام مختلف قيم الخاصية text-justify: <p class="none"><code>text-justify: none</code> —<br>تهدف موسوعة حسوب لتوفير توثيق عربي كامل وعالي الجودة، مدعّم بالأمثلة لمختلف لغات البرمجة وتقنيات تطوير الويب والجوال. ...
الحماية CSRF في Laravel
مقدمة يُسهّل Laravel حماية تطبيقك من الهجمات مُزوّرة الطلب عبر المواقع (cross-site request forgery) واختصارها CSRF. تزويرات الطلب عبر المواقع هن نوع من الاستغلال تُنفّذ فيها أوامر غير مُرخّصة نيابة عن المستخدم المصادق عليهالمُستوثق (authenticated user). يُولّد Laravel تلقائيًّا "رمز" CSRF لكل جلسة مستخدم نشطة يديرها التطبيق. يُستخدم هذا الرمز (token) للتحقّق من كون المستخدم المصادق عليه نفس الشخص الذي يقدّم الطلبات للتطبيق. يجب أن تضيف حقل CSRF مخفي في كل مرّة تعرّف فيها نموذج HTML في تطبيقك كي تتثبت ...
عرض (500 السابقة | 500 التالية) (20 | 50 | 100 | 250 | 500).