نتائج البحث

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

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

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

الدالة natcasesort()‎‎‎‎‎ في PHP

(PHP 4, PHP 5, PHP 7) تُرتّب الدالة natcasesort()‎‎‎‎‎ مصفوفة باستخدام خوارزمية "الترتيب الطبيعي" غير الحساسة لحالة الحرف. الوصف bool natcasesort ( array &$array ) الدالة natcasesort()‎‎‎‎‎ هي نسخة من الدالة ()‎natsort لكنها غير حساسة لحالة الحرف. تُنفذ هذه الدالة خوارزمية تُرتّب سلاسل نصية تحتوي على أحرف وأرقام بنفس الطريقة التي يُرتّب بها الإنسان مع الحفاظ على علاقة المفاتيح بالقيم المرتبطة بها. وتسمى هذه الطريقة باسم "الترتيب الطبيعي". ملاحظة: إذا تساوت مقارنة عنصرين، فإن ترتيبهما النسبي في المصفوفة المُرتّبة سيكون غير ...

الدالة natsort()‎‎‎‎‎‎‎ في PHP

(PHP 4, PHP 5, PHP 7) تُرتّب الدالة natsort()‎‎‎‎‎‎‎ عناصر المصفوفة باستخدام خوارزمية "الترتيب الطبيعي". الوصف bool natsort ( array &$array ) تُنفذ هذه الدالة خوارزمية تُرتّب سلاسل نصية فيها أحرف وأرقام بنفس الطريقة التي يُرتّب بها الإنسان مع الحفاظ على علاقة المفاتيح بالقيم المرتبطة بها. وتسمى هذه الطريقة باسم "الترتيب الطبيعي". ويمكن ملاحظة مثال على الفرق بين هذه الخوارزمية وخوارزميات الترتيب المعتادة لترتيب السلاسل النصية الرقمية (المستخدمة في الدالة sort()‎‎‎) في المثال التالي. ملاحظة: إذا تساوت مقارنة عنصرين، فإن ترتيبهما ...

الدالة strnatcmp()‎ في PHP

(PHP 4, PHP 5, PHP 7) توازن الدالة strnatcmp()‎ بين سلسلتين نصيَّتين (strings) مع تحسُّس حالة الأحرف (كبيرة أو صغيرة) وذلك باستعمال خوارزميَّة الترتيب الطبيعي (natural order algorithm). الوصف int strnatcmp ( string $str1 , string $str2 ) توازن هذه الدالة بين السلسلة النصيَّة str1 والسلسلة النصيَّة str2 باستعمال خوارزميَّة الترتيب الطبيعي مع تحسُّس حال الأحرف. تُرتِّب هذه الخوارزميَّة السلاسل النصيَّة التي تحوي أحرفًا وأرقامًا بالطريقة ذاتها التي يُرتِّب بها البشر (لهذا السبب سميت "الترتيب الطبيعي") ثمَّ تبدأ عمليَّة الموازنة. المعاملات ...

الدالة strnatcmp()‎ في PHP

(PHP 4, PHP 5, PHP 7) توازن الدالة strnatcmp()‎ بين سلسلتين نصيَّتين (strings) مع تحسُّس حالة الأحرف (كبيرة أو صغيرة) وذلك باستعمال خوارزميَّة الترتيب الطبيعي (natural order algorithm). الوصف int strnatcmp ( string $str1 , string $str2 ) توازن هذه الدالة بين السلسلة النصيَّة str1 والسلسلة النصيَّة str2 باستعمال خوارزميَّة الترتيب الطبيعي مع تحسُّس حال الأحرف. تُرتِّب هذه الخوارزميَّة السلاسل النصيَّة التي تحوي أحرفًا وأرقامًا بالطريقة ذاتها التي يُرتِّب بها البشر (لهذا السبب سميت "الترتيب الطبيعي") ثمَّ تبدأ عمليَّة الموازنة. المعاملات ...

الخاصية background-blend-mode

الخاصية background-attachment في CSS تصف كيف يجب أن تمتزج صور الخلفية مع بعضها بعضًا ومع لون الخلفية المُحدَّد للعنصر. يجب تعريف أنماط الامتزاج (blending modes) بنفس ترتيب ورود الصور في خاصية background-image؛ وإذا لم يكن طول قائمة القيم في كلا الخاصيتين متساوٍ، فستُكرَّر أو تحذف بعض القيم حتى تتساوى فيما بينها. لاحظ أنَّه إذا استخدمنا الخاصية background المختصرة، فستؤدي إلى إعادة ضبط قيمة الخاصية background-blend-mode إلى قيمتها الافتراضية، لذا احرص على استعمال هذه الخاصية بعدها. بطاقة الخاصية القيمة الابتدائية normal ...

استخدام البُنية case

حالات مُبسطة قد يكون من السهل اللجوء إلى استخدام عبارات if لبداهة أسلوبها، لكن تلك السهولة تنقلب إلى حيرة حين تواجه بضعة اختيارات مختلفة لإجراءات محتملة يجب اتخاذها، ولمثل تلك الحالات نستخدم عبارة case، وبنيتها اللغوية هي كما يلي: case EXPRESSION in CASE1) COMMAND-LIST;; CASE2) COMMAND-LIST;; ... CASEN) COMMAND-LIST;; esac وتطابق كل حالة في التعبير السابق نمطًا (pattern)، وتُنفَّذ الأوامر التي في قائمة COMMAND-LIST لأول تطابق، ويُستخدم محرف الأنبوب | لفصل الأنماط المتعددة، وينهي معامِل ( قائمة الأنماط، ويُطلق اسم البند ...

الخاصية background-image

الخاصية background-image في CSS تضبط صورةً أو أكثر على أنها خلفية للعنصر. ستُطبَّق صور الخلفية فوق بعضها بعضًا، وترسم أوّل طبقة مُحدَّدة وكأنها أقرب طبقة إلى المستخدم. سيُرسَم إطار العنصر border فوق صور الخلفية، وسيوضع اللون المُحدَّد في الخاصية background-color تحتها. تُحدَّد العلاقة بين الصور المعروضة وصندوق العنصر وإطاره باستخدام الخاصيتين background-clip و background-origin في CSS. إذا لم يمكن ممكنًا عرض الصورة المُحدَّد (على سبيل المثال: لم يتمكن المتصفح من تحميل الصورة من رابط URI الخاص بها)، فسيفترض المتصفح أنَّ ...

المصطلحات في React

التطبيق وحيد الصفحة التطبيق وحيد الصفحة (Single-page Application) هو التطبيق الذي يُحمِّل صفحة HTML واحدة وكل ملحقاتها الضرورية (مثل CSS و JavaScript) المطلوبة لكي يعمل التطبيق. لا تتطلّب أيّة تفاعلات مع الصفحة أو الصفحات اللاحقة أي عودة للخادم مرّة أخرى، ممّا يعني عدم إعادة تحميل الصفحة. بالرغم من قدرتك على بناء تطبيق وحيد الصفحة في React فهو ليس أمرًا ضروريًّا. يُمكِن أيضًا استخدام React لتحسين أجزاء صغيرة من الموقع مع الحصول على تفاعليّة أكبر. يُمكِن للشيفرة المكتوبة باستخدام React أن ...

DOM الافتراضي والكائنات الداخلية في React

ما هو DOM الافتراضي (Virtual DOM)؟ DOM الافتراضي (أو اختصارًا VDOM) هو مفهوم برمجي نحتفظ فيه بالتمثيل المثالي أو الافتراضي لواجهة المستخدم ضمن الذاكرة مع مزامنته مع DOM الحقيقي عن طريق مكتبة مثل React DOM. تُدعى هذه العمليّة بالمطابقة (reconciliation). تُمكِّن هذه الطريقة واجهة برمجة التطبيق التصريحية في React، حيث تُخبِر React الحالة التي تريد أن تكون بها واجهة المستخدم لديك، فتحرص React على مطابقة DOM مع تلك الحالة. يُجرِّد هذا التعامل مع الخاصيّات، ومعالجة الأحداث، وتحديث DOM اليدوي الذي ...

حالة المكونات في React

ماذا يفعل التابع setState؟ يُجدوِل التابع setState()‎ تحديثًا لكائن حالة المكوّن state. عندما تتغير الحالة يستجب المكوّن بإعادة التصيير. ما الفرق بين الحالة state والخاصيّات props؟ الخاصيّات props (اختصارًا للكلمة properties) والحالة state كلاهما عبارة عن كائنات JavaScript مجرّدة. وفي حين أنّ كلاهما يحمل معلومات تؤثر في ناتج التصيير، فهما مختلفان بطريقة واحدة هامة، حيث تُمرَّر الخاصيّات إلى المكوّن (بشكل مماثل لمُعاملات الدالة) بينما تُدار الحالة state ضمن المكوّن (بشكل مشابه للمتغيرات المعرفة بداخل الدالة). هنا تجد مصادر جيدة لقراءة ...

المكونات غير المضبوطة في React

نُفضِّل في معظم الحالات استخدام المُكوّنات المضبوطة من أجل حقول الإدخال، ففي المُكوّنات المضبوطة يتعامل مُكوّن React مع بيانات الحقول. البديل لها هو المُكوّنات غير المضبوطة والتي يتعامل فيها DOM مع بيانات الحقول. لكتابة مُكوّن غير مضبوط بدلًا من كتابة معالج أحداث لكل تحديث للحالة، فبإمكانك استخدام المراجع للحصول على قيم الحقول من DOM. مثلًا تقبل هذه الشيفرة اسمًا واحدًا في المُكوّن غير المضبوط: class NameForm extends React.Component { constructor(props) { super(props); this.handleSubmit ...

مكونات الويب في React

إنّ مكوّنات React ومكوّنات الويب مبنية لحل مشاكل مختلفة. حيث تُزوِّدنا مكوّنات الويب بتغليف قوي لمكوّنات قابلة لإعادة الاستخدام، بينما تُزوِّدنا مكوّنات React بمكتبة تصريحات تُبقي DOM على تزامن مع بياناتنا. يكون هذا الهدفان متكاملين، وكمُطوّر لك حرية استخدام React في مكوّنات الويب لديك، أو استخدام مكوّنات الويب في React أو كليهما معًا. معظم من يستخدم React لا يستخدم مكوّنات الويب، ولكن قد ترغب في ذلك خاصة إذا كنت تستخدم مكوّنات لواجهة المستخدم من طرف ثالث والتي تكون مكتوبة باستخدام ...

مقدمة إلى JSX في React

فلننظر إلى تعريف هذا المتغير: const element = <h1>!أهلًا بالعالم</h1>; إنّ الصّياغة الغريبة السّابقة التي تحتوي على وسم هي ليست سلسلة نصيّة ولا حتى HTML. تُدعى الصّياغة السّابقة JSX وهي عبارة عن امتداد لصياغة JavaScript، نوصي باستخدامها مع React لوصف المظهر الذي ينبغي أن تكون عليه واجهة المستخدم. قد تُذكِّرك JSX بلغات القوالب، ولكنها تمتلك قوة JavaScript الكاملة. تُنتِج JSX عناصر React. سنستعرض إظهار هذه العناصر في DOM في قسم تصيير العناصر (Rendering Elements). سنتحدّث في الفقرات التالية عن أساسيّات JSX ...

المطابقة (Reconciliation) في React

تُزوّدنا React بواجهة برمجة تطبيقات (API) صريحة بحيث لا نقلق بشأن التغييرات التي تطرأ في كل تحديث. يجعل هذا من كتابة التطبيقات أمرًا أسهل بكثير، ولكن قد لا يكون من الواضح كثيرًا كيفيّة تطبيق هذا في React. تشرح هذه الصفحة الخيارات التي وضعناها في خوارزمية المقارنة (diffing) بحيث تكون تحديثات المُكوّنات متوقعة وفي نفس الوقت سريعة كفاية لأجل التطبيقات عالية الأداء. البداية عندما تستخدم React في نقطة زمنية محدّدة بإمكانك التفكير في التابع render()‎ كأنّه يُنشِئ شجرة من عناصر React، ...

معالجة الأحداث في React

تُشبه معالجة الأحداث لعناصر React معالجة الأحداث لعناصر DOM، ولكن هنالك فروق تتعلّق بالصياغة: تُسمَّى أحداث React باستخدام حالة الأحرف camelCase (أي عند وجود اسم مؤلف من عدة كلمات نجعل الحرف الأول من الكلمة الأولى بالشكل الصغير أمّا باقي الكلمات نجعل حرفها الأول بالشكل الكبير) بدلًا من استخدام الشكل الصغير للأحرف. نُمرِّر في JSX دالة كمُعالِج للأحداث، بدلًا من سلسلة نصيّة. على سبيل المثال لنأخذ شيفرة HTML التالية: <button onclick="activateLasers()"> تفعيل الليزر </button> تكون الشيفرة السابقة مختلفة قليلًا في React: <button ...

تصيير العناصر (Rendering Elements) في React

تُشكِّل العناصر أصغر بنية لتطبيقات React. يصف العنصر ما الذي تود رؤيته على الشّاشة: const element = <h1>أهلًا بالعالم</h1>; على عكس عناصر DOM الخاصّة بالمتصفّح، تكون عناصر React عبارة عن كائنات مُجرّدة سهلة الإنشاء، ويعتني React DOM بتحديث DOM لمُطابقة عناصر React. ملاحظة: قد يخلط المرء العناصر مع مفهوم أكثر انتشارًا وهو المُكوِّنات (components)، سنتحدّث عن المُكوِّنات بالتفصيل في القسم الخاص بها. إنّ العناصر هي الشيء الذي تُصنَع منه المُكوِّنات، ومن المُفضَّل أن تقرأ ذلك القسم قبل المتابعة. تصيير العنصر إلى ...

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

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

التصيير السطحي (Shallow Rendering) في React

الاستيراد import ShallowRenderer from 'react-test-renderer/shallow'; // ES6 var ShallowRenderer = require('react-test-renderer/shallow'); // ES5 with npm لمحة عامة عند كتابة وحدات اختبار لمكتبة React يكون التصيير السطحي مفيدًا لك. يُتيح لك التصيير السطحي تصيير مكوّن على عمق مستوى واحد وتوضيح الحقائق حول ما يُعيده تابع التصيير، بدون القلق حول سلوك المكوّنات الأبناء والتي لم تُصيَّر أو ينشأ عنها نسخة. لا يحتاج ذلك إلى DOM. على سبيل المثال إن كان لديك المكوّن التالي: function MyComponent() { return ( <div> ...

الحقل file

عناصر <input> ذات النوع file تسمح للمستخدم باختيار ملف أو أكثر لرفعها إلى الخادوم أو تعديلها باستخدام الواجهة البرمجية File. الخاصية value تحتوي الخاصية value في الحقل file على سلسلة نصية (DOMString) التي تُمثِّل المسار إلى الملف (أو الملفات) المختارة. بعض الأمور التي عليك أن تضعها بالحسبان: إذا تم اختيار عدِّة ملفات، فقيمة الخاصية value ستُمثِّل أوّل ملف مختار، لكن يمكن الوصول إلى الملفات الأخرى عبر الخاصية FileList في DOM التابعة للعنصر <input>. إذا لم يتم اختيار ملف بعد، فستكون ...

الدليل التطبيقي

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

الخاصية background-origin

الخاصية background-origin في CSS تُحدِّد مبدأ صورة الخلفية المُحدَّدة عبر الخاصية background-image. لاحظ أنَّ الخاصية background-origin لن يكون لها تأثير عند ضبط قيمة الخاصية background-attachment إلى fixed. لاحظ أنَّ الخاصية المختصرة background ستؤدي إلى إعادة ضبط قيمة هذه الخاصية إلى قيمتها الابتدائية إذا لم تُحدَّد فيها. بطاقة الخاصية القيمة الابتدائية padding-box تُطبَّق على جميع العناصر. قابلة للوراثة لا قابلة للتحريك لا القيمة المحسوبة كما حُدِّدَت. /* الكلمات المحجوزة */ background-origin: border-box; background-origin: padding-box; background-origin: content-box; /* القيم العامة */ background-origin: inherit; background-origin: initial; background-origin: unset; أمثلة مثال ...

الخاصية background-attachment

الخاصية background-attachment في CSS تُحدِّد إذا كان موضع الصورة (المُحدَّدة عبر الخاصية background-image) ثابتًا (fixed) ضمن إطار العرض (viewport) أو كان سيُمرَّر عند التمرير في العنصر (أو الصفحة) الحاوي له. بطاقة الخاصية القيمة الابتدائية scroll تُطبَّق على جميع العناصر. قابلة للوراثة لا قابلة للتحريك نعم القيمة المحسوبة كالقيمة المُحدَّدة. /* كلمات مفتاحية */ background-attachment: scroll; background-attachment: fixed; background-attachment: local; /* القيم العامة */ background-attachment: inherit; background-attachment: initial; background-attachment: unset; أمثلة مثال بسيط عن استخدام الخاصية background-attachment لجعل موضع صورة الخلفية (المُحدَّدة عبر الخاصية background-image) ثابتًا. شيفرة HTML: ...

استخدام لغة Kotlin في نطاق JavaScript

تتيح لغة Kotlin إمكانيّة استهداف لغة JavaScript من خلال تحويل (transpiling) شيفرات Kotlin إلى ما يماثلها في JavaScript ؛ إذ تستهدف بالوقت الحاليّ معيارECMAScript 5.1، ومن المُخطَّط له أيضًا التوافق مع معيار ECMAScript 2015 لاحقًا. عند استخدام لغة Kotlin بهدف كتابة شيفرات JavaScript فستُحوَّل الشيفرات المكتوبة بلغة Kotlin (بعدِّها جزءًا من المشروع والمكتبة القياسيّة في Kotlin) إلى شيفرة JavaScript، ولكنّ هذا لا يشمل أيًّا ممّا يتعلَّق ببيئة JDK أو JVM أو Java أو أيّ من منصّاتها أو مكتباتها المُستخدَمة، ويُستبعَد ...

JSX في TypeScript

مقدمة JSX بنيةٌ (syntax) مشابهةٌ للغة XML يُمكن تضمينها وتحويلها إلى شيفرة JavaScript صالحة، لكن آلية عملية التحويل تختلف من تطبيق (implementation) إلى آخر. اشتهرت JSX باستخدامها مع مكتبة React، لكنها تملك تطبيقات أخرى غير React. تدعم لغة TypeScript تضمين JSX، وتدقيق الأنواع فيها، وكذا ترجمة JSX إلى JavaScript مباشرةً. ملاحظة حول المصطلحات: نستخدم في هذه الصّفحة كلمة "صِفَة" للإشارة إلى الكلمة الإنجليزيّة "attribute" وكلمة "خاصيّة" للإشارة إلى كلمة "property"، كلاهما يُترجَم إلى كلمة "خاصيّة" ولهما نفس المعنى في معظم ...

أمثلة عن الدوال في Bash

إعادة التدوير ستجد برامج كثيرة على نظامك تستخدم الدوال كطريقة منظمة لمعالجة سلسلة ما من الأوامر، ففي بعض أنظمة لينكس مثلًا ستجد الملف التعريفي etc/rc.d/init/functions/ يشار إليه كمصدر في كل شيفرات init النصية. وبهذا الأسلوب لا تحتاج إلى كتابة المهام المتكررة سوى مرة واحدة وبشكل عام أيضًا، مهام مثل تفقد ما إن كانت تعمل إحدى المهام، تشغيل أو إيقاف أحد العفاريت (daemons)، وهلم جرا. ثم إذا دعت الحاجة إلى كتابة تلك المهام مرة أخرى فإنك لا تحتاج سوى إعادة تدوير ...

بناء Javascript و CSS

مقدمة لا يفرض Laravel عليك استخدام أي معالج JavaScript و CSS، إلّا إنّه يوفّر نقطة انطلاق بسيطة باستخدام Bootstrap و Vue ممّا سيساعد العديد من التطبيقات. بصفة عامّة، يستخدم Laravel أوامر npm لتنصيب حزم الواجهات الأمامية هذه. CSS يوفّر Laravel Mix واجهة برمجية (API) سهلة ومعبّرة لترجمة Sass أو Less، وهي إضافات للغة CSS الأساسية التي تضيف المتغيّرات والمخاليط (mixins) والعديد من الخصائص الأخرى التي تجعل العمل بلغة CSS أكثر متعة. في هذه الصفحة، سنناقش باختصار ترجمة CSS بصفة عامّة ...

تعليمات التحكم في Sass

تدعم SassScript تعليمات وتعابير التحكم التي تُستعمل لرَهن تفعيل الأنماط بشروط معيّنةٍ أو لتضمين نفس النمط لكن مع تطبيق بعض التنويعات عليه. ملاحظة: تعليمات التحكم هي ميزة متقدمةٌ، كما أنّها غير شائعة الاستخدام. وُجدت أساسًا لتُستعمل في المخاليط (mixins)، لاسيما تلك التي هي جزءٌ من المكتبات مثل Compass، لذلك فهي تتطلب مرونةً كبيرةً في التعامل معها. if()‎ تُعيد الدالة المضمّنة if()‎ إحدى قيمتين محدَّدتين بناءً على شرط معيّن، ويمكن استخدامها في أيّ سياق برمجي. لا تتحقق الدالة if إلا من ...

الخاصية background-repeat

الخاصية background-position في CSS تُعرِّف كيف ستتكرر صورة الخلفية؛ إذ يمكن أن تتكرر صورة الخلفية على المحور الأفقي، أو على المحور الرأسي، أو على كلا المحوري، ويمكن ألّا تتكرر أبدًا. افتراضيًا، ستُقصّ الصورة إلى أبعاد العنصر، لكن يمكن أن تغيير أبعادها لتتسع داخله (باستخدام القيمة round) أو توزيعها بانتظام بين أطراف العنصر (باستخدام القيمة space). بطاقة الخاصية القيمة الابتدائية repeat تُطبَّق على جميع العناصر. قابلة للوراثة لا قابلة للتحريك لا القيمة المحسوبة قائمة فيها أكثر من عنصر، وكل عنصر يتألف ...

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

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

القيمة

نوع البيانات <image> في CSS يستعمل لتمثيل صورة ثنائية الأبعاد؛ وهنالك نوعان من الصور: الصور التقليدية التي يُشار إليها عادةً باستخدام رابط URL، والصور المولّدة ديناميكيًا، مثل التدرجات اللونية <gradient>. يمكن استخدام القيمة <image> مع عدد كبير من خاصيات CSS مثل background-image و border-image و content و list-style-image و cursor. دعم المتصفحات الميزة Chrome Firefox Internet Explorer Safari Opera <url> مدعومة مدعومة مدعومة مدعومة مدعومة <gradient> 26.0 16.0 10.0 6.1 12.1 أنواع الصور يمكن أن تتعامل CSS مع أنواع الصور ...

الخاصية cursor

الخاصية cursor في CSS تُحدِّد ما هو شكل مؤشر الفأرة الذي سيُعرَض عندما تمر الفأرة فوق العنصر. بطاقة الخاصية القيمة الابتدائية auto تُطبَّق على جميع العناصر. قابلة للوراثة نعم قابلة للحركة لا القيمة المحسوبة كما حُدِّدَت، لكن مع تحويل روابط URL النسبية إلى مطلقة. /* كلمات محجوزة */ cursor: pointer; cursor: auto; /* استخدام رابط للأيقونة مع إحداثيات */ cursor: url(cursor1.png) 4 12, auto; cursor: url(cursor2.png) 2 2, pointer; /* القيم العامة */ cursor: inherit; cursor: initial; cursor: unset; أمثلة مثال عن استخدام مختلف القيم مع الخاصية cursor: <div ...

العنصر

يُمثِّل العنصر <img> صورةً في المستند. مثال عن استخدام العنصر <img> لعرض صورة مع تحديد نص بديل لها (عبر الخاصية alt): <img src="wiki-logo.png" alt="Wiki Hsoub Logo"> مثال عن استخدام العنصر <img> لعرض صورة مع تحديد نص بديل لها (عبر الخاصية alt) داخل العنصر مما يسمح بالنقر على الصورة للانتقال: <a href="wiki.hsoub.com"><img src="wiki-logo.png" alt="Wiki Hsoub Logo"></a> بطاقة العنصر تصنيفات المحتوى عنصر تنظيمي أو عنصر عادي أو عنصر يحتوي وسائط مضمّنة أو عنصر تفاعلي. المحتوى المسموح لا يوجد، فهذا العنصر فارغ. الوسم المختصر ...

خيارات المترجم في TypeScript

يوضح الجدول التالي جميع الخيارات التي يمكن استعمالها مع مترجم TypeScript للتحكم بسير عمله والتعديل على سلوكه أثناء ترجمة الشيفرات. الخيار النوع القيمة الافتراضية الوصف ‎--allowJs‎ ‎boolean‎ ‎false‎ السماح بترجمة ملفّات JavaScript. ‎--allowSyntheticDefaultImports‎ ‎boolean‎ ‎module === "system" ‎ أو أنّ الخيار ‎--esModuleInterop‎ مضبوط وقيمة ‎module‎ ليست ‎es2015‎ أو ‎esnext‎ السماح للاستيرادات الافتراضية من الوحدات التي لا تحتوي على تصديرات افتراضيّة. هذا لا يؤثر على الشيفرة المولَّدة، ويؤثر فقط على آلية التحقق من الأنواع. ‎--allowUnreachableCode‎ ‎boolean‎ ‎false‎ لا تُخبِر عن الأخطاء ...

الخاصية background-size

الخاصية background-clip في CSS تُحدِّد أبعاد صورة الخلفية للعنصر؛ ويمكن أن تُترَك الأبعاد الابتدائية للصورة، أو تُغيّر إلى أبعاد جديدة، أو يمكن ملء المساحة المتوافرة بها مع الحفاظ على نسبة الأبعاد. لاحظ أنَّ الفراغات التي لا تغطى من صورة الخلفية ستُملأ بقيمة الخاصية background-color، ويجدر بالذكر أنَّ من الممكن مشاهدة لون الخلفية إذا كانت صورة الخلفية تحتوي على شفافية. بطاقة الخاصية القيمة الابتدائية auto auto تُطبَّق على جميع العناصر. قابلة للوراثة لا قابلة للتحريك نعم النسب المئوية تكون نسبةً لمساحة ...

ترجمة الأصول (Laravel Mix)

مقدمة يوفّر Laravel Mix واجهة برمجية (API) واضحة لتعريف خطوات بناء Webpack للتطبيق باستعمال العديد من المعالجات المسبقة (pre-processors) للغتي CSS و Javascript. باستخدام سلسلة بسيطة من استدعاءات التوابع، يمكن تعريف مسار معالجة الأصول (assets) في التطبيق. فمثلًا: mix.js('resources/assets/js/app.js', 'public/js') .sass('resources/assets/sass/app.scss', 'public/css'); إن أصبحت مرتبكا و مشوشا حول البدء مع Webpack وترجمة الأصول، فسوف تحب Laravel Mix. لكنك لست مطالبًا باستعمالها لبناء تطبيقك. طبعًا لك حرية اختيار أي مسار لمعالجة الأصول تريده، أو أن لا تستعمل أيًا منها على ...

الاستخدامات المتقدمة لعبارة if الشرطية في Bash

بُنى if/then/else يوضح المثال التالي البُنية التي يجب استخدامها لاتخاذ إجراء أو سلسلة إجراءات إن تحققت شروط عبارة if، وسلسلة إجراءات أخرى إن لم تتحقق: hsoub scripts> gender="male" hsoub scripts> if [[ "$gender" == "f*" ]] More input> then echo "Pleasure to meet you, Madame." More input> else echo "How come the lady hasn't got a drink yet?" More input> fi How come the lady hasn't got a drink yet? hsoub scripts> الفرق بين [] و [[]] على عكس ]، فإن ]] تمنع انقسام الكلمات في ...

الوحدة Readline في Node.js

الاستقرار 2: مستقر توفّر الوحدة readline واجهةً برمجيةً لقراءة سطر واحد من البيانات من المجرى القابل للقراءة (Readable) (مثل process.stdin) كل مرَّة على حدة. يمكن الوصول إليها باستخدام الأمر التالي: const readline = require('readline'); يوضح المثال البسيط التالي الاستخدام الأساسي للوحدة readline: const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); rl.question('What do you think of Node.js? ', (answer) => { ‎‎‎ // في قاعدة بيانات (answer) للتنفيذ: سجل الجواب console.log(`Thank you for your valuable feedback: ${answer}`); ...

خط أنابيب الأصول في ريلز

يغطّي هذا الدليل أنبوب الأصول. ستتعلم بعد قراءة هذا الدليل: ماهيّة أنبوب الأصول وماذا يفعل. كيفيّة تنظيم أصول تطبيقك بشكل صحيح. فوائد أنبوب الأصول. كيفيّة إضافة معالج مسبق (pre-processor) إلى الأنبوب. كيفيّة وضع الأصول مع جوهرة في حزمة. ما هو أنبوب الأصول؟ يوفّر أنبوب الأصول إطارًا لسَلسَلة وتصغير أو ضغط أصول JavaScript و CSS. كما أنه يضيف القدرة على كتابة هذه الأصول بلغات أخرى ومعالجات مسبقة مثل CoffeeScript و Sass و ERB. يسمح للأصول في تطبيقك أن تُدمج تلقائيًّا مع ...

وحدة المسار (Path) في Node.js

مؤشر الاستقرار: 2 - مستقر. توفر وحدة المسار path أدوات للعمل مع مسارات الملفات والمجلدات. ويمكن الوصول إليها باستخدام: const path = require('path'); ويندوز في مقابل POSIX يختلف التشغيل الإفتراضي لوحدة path استنادًا إلى نظام التشغيل الذي يعمل عليه أحد تطبيقات Node.js. على وجه التحديد، عند تشغيل نظام تشغيل ويندوز، ستفترض وحدة path استخدام نمط ويندوز للمسارات. على سبيل المثال، استخدام الدالة path.basename()‎ مع مسار ويندوز للملف C:\temp\myfile.html، وسيُسفر ذلك عن نتائج مختلفة عند تشغيله على نظام يتبع معايير POSIX ...

التحقق من الأنواع في ملفات JavaScript في TypeScript

مقدمة أصبحت TypeScript منذ النسخة 2.3 تدعم التحقق من الأنواع والإبلاغ عن الأخطاء في ملفّات ‎.js‎ مع خيار المترجم ‎--checkJs‎. يمكنك تخطي التحقق من ملفّاتٍ معيّنة عبر إضافة التعليق ‎// @ts-nocheck‎ إليها؛ وفي المقابل يمكنك اختيار ملفّات ‎.js‎ التي تريد التحقق منها عبر إضافة التعليق ‎// @ts-check‎ إليها دون استخدام الخيار ‎‎--checkJs‎‎. يمكنك كذلك تجاهل الأخطاء على أسطرٍ محدَّدة عبر إضافة التعليق ‎// @ts-ignore‎ على نفس السطر. لاحظ أنّه عند ضبط ملفّ ‎tsconfig.json‎، فالتحقق من ملفات JavaScript سيحترم الخيارات الصارمة ...

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

أنواع المتغيرات تُكتب متغيرات الصدفة بحروف إنجليزية كبيرة، وتحتفظ Bash بقائمة من نوعين من المتغيرات: المتغيرات العامة Global Variables ستجد المتغيرات العامة أو متغيرات البيئة (environment variables) في جميع الصدفات، ويمكن استخدام أوامر env أو printenv لعرض متغيرات البيئة، وتأتي تلك البرامج في حزمة sh-utils. إليك مثالًا لخرج أمر printenv: wiki ~> printenv CC=gcc CDPATH=.:~:/usr/local:/usr:/ CFLAGS=-O2 -fomit-frame-pointer COLORTERM=gnome-terminal CXXFLAGS=-O2 -fomit-frame-pointer DISPLAY=:0 DOMAIN=hq.garrels.be e= TOR=vi FCEDIT=vi FIGNORE=.o:~ G_BROKEN_FILENAMES=1 GDK_USE_XFT=1 GDMSESSION=Default GNOME_DESKTOP_SESSION_ID=Default GTK_RC_FILES=/etc/gtk/gtkrc:/nethome/wiki/.gtkrc-1.2-gnome2 GWMCOLOR=darkgreen GWMTERM=xterm HISTFILESIZE=5000 history_control=ignoredups HISTSIZE=2000 HOME=/nethome/wiki HOSTNAME=hsoub.hq.garrels.be INPUTRC=/etc/inputrc IRCNAME=wiki JAVA_HOME=/usr/java/j2sdk1.4.0 LANG=en_US LDFLAGS=-s LD_LIBRARY_PATH=/usr/lib/mozilla:/usr/lib/mozilla/plugins LESSCHARSET=latin1 LESS=-edfMQ LESSOPEN=|/usr/bin/lesspipe.sh %s LEX=flex LOCAL_MACHINE=hsoub LOGNAME=wiki LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35: MACHINES=hsoub MAILCHECK=60 MAIL=/var/mail/wiki MANPATH=/usr/man:/usr/share/man/:/usr/local/man:/usr/X11R6/man MEAN_MACHINES=hsoub MOZ_DIST_BIN=/usr/lib/mozilla MOZILLA_FIVE_HOME=/usr/lib/mozilla MOZ_PROGRAM=/usr/lib/mozilla/mozilla-bin MTOOLS_FAT_COMPATIBILITY=1 MYMALLOC=0 NNTPPORT=119 NNTPSERVER=news NPX_PLUGIN_PATH=/plugin/ns4plugin/:/usr/lib/netscape/plugins OLDPWD=/nethome/wiki OS=Linux PAGER=less PATH=/nethome/wiki/bin.Linux:/nethome/wiki/bin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin:/usr/bin:/usr/sbin:/bin:/sbin:. PS1=\[\033[1;44m\]wiki is in \w\[\033[0m\] PS2=More input> PWD=/nethome/wiki SESSION_MANAGER=local/hsoub.hq.garrels.be:/tmp/.ICE-unix/22106 SHELL=/bin/bash SHELL_LOGIN=--login SHLVL=2 SSH_AGENT_PID=22161 SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass SSH_AUTH_SOCK=/tmp/ssh-XXmhQ4fC/agent.22106 START_WM=twm TERM=xterm TYPE=type USERNAME=wiki USER=wiki _=/usr/bin/printenv VISUAL=vi WINDOWID=20971661 XAPPLRESDIR=/nethome/wiki/app-defaults XAUTHORITY=/nethome/wiki/.Xauthority XENVIRONMENT=/nethome/wiki/.Xdefaults XFILESEARCHPATH=/usr/X11R6/lib/X11/%L/%T/%N%C%S:/usr/X11R6/lib/X11/%l/%T/%N%C%S:/usr/X11R6/lib/X11/%T/%N%C%S:/usr/X11R6/lib/X11/%L/%T/%N%S:/usr/X11R6/lib/X11/%l/%T/%N%S:/usr/X11R6/lib/X11/%T/%N%S XKEYSYMDB=/usr/X11R6/lib/X11/XKeysymDB XMODIFIERS=@im=none XTERMID= XWINHOME=/usr/X11R6 X=X11R6 YACC=bison -y المتغيرات المحلية Local Variables لن تجد المتغيرات المحلية إلا في الصدفة الحالية، ويمكن استخدام أمر set -بدون خيارات- لعرض ...

اختبار تطبيقات ريلز

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