نتائج البحث

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

Rails/Topics

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

سطر أوامر ريلز

بعد قراءة هذا الدّليل، ستتمكّن من: إنشاء تطبيق ريلز. توليد النماذج، ووحدات التحكّم، وتهجيرات قاعدة البيانات (database migrations)، ووحدات الاختبار. بدء الخادم الإنتاجي. كيفية تجربة الكائنات من خلال صدفة تفاعليّة (interactive shell) يفترض هذا الدليل أن لديك معرفة أساسية بإطار العمل ريلز من قراءة دليل البدء مع ريلز. أساسيات سطر الأوامر هناك بضعة أوامر تُعتبر حاسمة للغاية لاستخدامك اليومي لإطار العمل ريلز. هذا الأوامر مرتّبة حسب كثرة استخدامها تقريبًا بالشكل التالي: rails console rails server bin/rails rails generate rails dbconsole ...

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

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

إنشاء وتخصيص مولدات وقوالب ريلز

مولدات ريلز هي أداة أساسية إذا كنت تخطط لتحسين سير عملك. مع هذا الدليل سوف تتعلم كيفية إنشاء المولدات وتخصيص المولدات الموجودة. بعد قراءة هذا الدليل، ستتعلم: كيفية معرفة أي المولدات المتوفرة في التطبيق الخاص بك. كيفية إنشاء مولد باستخدام القوالب. كيفية بحث ريلز عن المولدات قبل استدعائها. كيفية إنشاء ريلز داخليًا شيفرة من القوالب. كيفية تخصيص المولد scaffold عن طريق إنشاء مولدات جديدة. كيفية تخصيص المولد scaffold عن طريق تغيير قوالب المولدات. كيفية استخدام التراجعات (fallbacks) لتجنب استبدال مجموعة ...

التحكم بالتدفق (Control Flow) في Kotlin

كما في أيّة لغة برمجة فإن لغة Kotlin تحتوي على تعابير للتحكم بالتدفق، وهي: تعبير if، وتعبير when، وحلقة for، وحلقة while. وتدعم كذلك الكلمتين المفتاحيّتَين continue و break المستخدَمتَين في الحلقات (راجع أوامر الرجوع والقفز returns and jump). تعبير if يُعدُّ الشرط if في لغة Kotlin تعبيرًا يعيد قيمة، وبالتالي لا حاجة للصيغة condition ? then : else لأن تعبير if يقوم بهذا الدور كما في الشيفرة الآتية: // الاستخدام الاعتيادي var max = a if (a < b) max = b // ...

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

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

الشروع في العمل مع المحركات في ريلز

ستتعرف في هذا الدليل على المحركات (engines) وكيف يمكن استخدامها لتوفير وظائف إضافية لتطبيقاتها المضيفة من خلال واجهة واضحة وسهلة الاستخدام للغاية. بعد قراءة هذا الدليل، ستتعلم: مما يتكون المحرك. كيف وُلِّد المحرك. كيفية بناء ميزات للمحرك. كيفية ربط المحرك في التطبيق. كيفية استبدال وظيفة المحرك في التطبيق. تجنب تحميل أطر ريلز مع خطافات التحميل (Load Hooks) وخطافات الضبط (Configuration Hooks). ما هي المحركات؟ تُعدُّ المحركات تطبيقات مصغرة توفر وظائف لتطبيقاتها المضيفة. تطبيق ريلز هو بالفعل محرك "supercharged"، مع الصنف ...

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

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

البدء مع ريلز

يغطي هذا الدليل بدء وتشغيل ريلز. بعد قراءة هذا الدليل، ستتعلم: كيف تثبّت ريلز وتُنشئ تطبيق ريلز جديد وتربط تطبيق ريلز بقاعدة بيانات. التخطيط العام لتطبيق ريلز. المبادئ الأساسية للنمط MVC (النموذج [Model]، والواجهة [View]، ووحدة التحكم [Controller]) والتصميم RESTful. كيف تولد سريعًا أجزاء البداية لتطبيق ريلز. افتراضات الدليل صُمِّم هذا الدليل للمبتدئين الراغبين ببدء استعمال إطار العمل ريلز من الصفر. ولا يفترض أن لك سابق خبرة بريلز. إنَّ ريلز هو إطار عمل لتطبيقات الويب يعمل على لغة البرمجة روبي. ...

إزالة رايات التحكم (Remove Control Flag)

المشكلة لديك متغيرات منطقية تعمل كرايات تحكم لتعبيرات منطقية متعددة. الحل استخدم الكلمات المفتاحية break و continue و return بدلًا من هذه المتغيرات. لم إعادة التصميم؟ تعود رايات التحكم إلى الأيام الخوالي، عندما كان يُتاح دائمًا للمبرمج "الأصيل" نقطة إدخال واحدة للدوال (سطر تعريف الدالة) ونقطة خروج واحدة (في نهاية الدالة). لكن هذا النمط المتشدد عفا عليه الزمن في لغات البرمجة الحديثة، إذ أصبح لدينا عوامل خاصة لتعديل تدفق التحكم في الحلقات وغيرها من التركيبات المُعقدة مثل: break: إيقاف الحلقة. continue: ...

التوجيه من الخارج إلى الداخل في ريلز

يغطي هذا الدليل الميزات التي يواجهها المستخدم في عمليات التوجيه في ريلز. بعد قراءة هذا الدليل، ستعرف: كيفية تفسير الشيفرة في config/routes.rb. كيفية بناء المسارات الخاصة بك باستخدام إما أسلوب الحيلة (resourceful style) المفضل أو طريقة المطابقة (match method). كيفية الإعلان عن معاملات المسار الموجه، والتي تمرر إلى إجراءات وحدة التحكم (controller actions). كيفية إنشاء المسارات وعناوين URL تلقائيًا باستخدام مساعدي المسار الموجه. التقنيات المتقدمة مثل إنشاء قيود وتثبيت نقاط نهاية Rack. الغرض من توجيه المسارات في ريلز يتعرف جهاز ...

أدوات Active Support في ريلز

Active Support هو جزء من نواة ريلز التي توفر ملحقات للغة روبي والأدوات المساعدة وغيرها من الأشياء. أحد الأشياء التي يتضمنها هو واجهة برمجية لأدوات قياس (instrumentation API) يمكن استخدامها داخل تطبيق لقياس إجراءات معينة تحدث داخل شيفرة روبي، مثل تلك الموجودة داخل تطبيق ريلز أو إطار العمل نفسه، إذ لا يقتصر ذلك على ريلز فقط. يمكن استخدامها بشكل مستقل في شيفرات روبي البرمجية الأخرى إذا كان ذلك مطلوبًا. في هذا الدليل، ستتعلم كيفية استخدام الواجهة البرمجية لأدوات القياس (instrumentation API) ...

تنقيح تطبيقات ريلز

يقدّم هذا الدليل التقنيات اللازمة لتنقيح تطبيقات ريلز. بعد قراءة هذا الدليل، ستتعلّم: الغرض من التنقيح. كيفة تتبّع العلل والأخطاء التي لا تتعرّف عليها الاختبارات في تطبيقك. طرقًا مختلفة للتنقيح. كيفيّة تحليل أثر المكدس. مساعدي العرض للتنقيح احدى المهام الشائعة في التنقيح هي فحص محتويات متغيّر معيّن، لذا يوفر ريلز ثلاثة طرائق لفعل ذلك: Debug To_yaml Inspect debug سيعيد المساعد debug الوسم <pre> الذي يصدّر الكائن باستخدام تنسيق YAML، وسيؤدي هذا إلى توليد بيانات يمكن للإنسان قراءتها من أي كائن. ...

عملية تهيئة ريلز

يشرح هذا الدليل العمل الداخلي لعملية التهيئة في ريلز. وهو دليل متعمق للغاية وموصى به لمطوري ريلز المتقدمّين. ستتعلم بعد قراءة هذا الدليل: كيفيّة استخدام خادم ريلز (rails server). التسلسل الزمني لتهيئة ريلز. أين تُطلَب الملفّات المختلفة أثناء تسلسل التمهيد. كيفيّة تعريف واجهة Rails::Server واستخدامها. يتضمّن هذا الدليل كل استدعاء لتابع مطلوب لتشغيل مكّدس Ruby on Rails (أي stack) لتطبيق ريلز افتراضي، مع شرح كل جزء بالتفصيل. بالنسبة لهذا الدليل، سنركّز على ما يحدث عند تنفيذ rails server لبدء إقلاع ...

تثبيت وضبط واستخدام Sass

يمكن استخدام Sass بثلاث طرائق هي: كأداة سطر أوامر، أو كوحدةٍ مستقلة لروبي، أو كمُلحقة في أيّ بيئة عمل تدعم Rack، بما في ذلك Ruby on Rails و Merb. تثبيت Sass الخطوة الأولى لاستخدام Sass هي تثبيت الجوهرة (gem)‏ Sass: gem install sass إن كنت تستخدم نظام ويندوز، فقد تحتاج إلى تثبيت روبي أولاً. لتشغيل Sass من سطر الأوامر، يكفي أن تكتب الأمر الآتي: sass input.scss output.css يمكنك أيضًا إخبار Sass بمراقبة الملف وتحديث ملف CSS الناتج عند كلِّ تغيُّرٍ في ملف ...

المكتبة Action Pack في ريلز

إن Action Pack هو إطار عمل لمعالجة والرد على طلبيات الويب. يوفر هذا الإطار آليةً للتوجيه (تعيين طلبيات العناوين URL إلى الإجراءات)، ويعرِّف المتحكمات التي تُنفِّذ الإجراءات، ويولد الردود غبر تصيير واجهات العرض (التي هي قوالب مصممة مسبقًا). باختصار، يوفر Action Pack طبقتي العرض والتحكم في النمط MVC (أي الحرفين V من أجل View و C من أجل Controller). يتألف هذا الإطار عدة وحدات: Action Dispatch: يحلل معلومات الطلبية، ويتعامل مع التوجيه بالشكل المُعرَّف من طرف المستخدم، ويجري معالجة متقدمة ...

ريلز مع Rack

يغطي هذا الدليل دمج ريلز مع Rack والتفاعل مع مكونات Rack الأخرى. بعد قراءة هذا الدليل، ستتعلم: كيفية استخدام برمجيات Rack الوسيطة في تطبيقات ريلز الخاصة بك. حزمة البرمجيات الوسيطة الداخلية لـ Action Pack. كيفية تعريف مكدس برنامج وسيط مخصص (custom Middleware stack). تحذير: يفترض هذا الدليل معرفة عملية ببروتوكول Rack وبمفاهيم Rack مثل البرمجيات الوسيطة (middlewares) وخرائط url و Rack::Builder. مقدمة إلى Rack يوفر Rack واجهة دنيا، ومركبة من وحدات، وقابلة للتهيئة لتطوير تطبيقات الويب في روبي. من خلال ...

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

يغطي هذا الدليل ميزات الضبط والتهيئة المتاحة لتطبيقات ريلز. بعد قراءة هذا الدليل، ستتعلم: كيفية ضبط سلوك تطبيقات ريلز. كيفية إضافة شيفرة مصدريّة إضافية لتنفيذها وقت بدء تشغيل التطبيق. مواقع شيفرة التهيئة والضبط يوفر ريلز أربعة مواضع رئيسيّة لوضع الشيفرة المصدريّة للتهيئة: config/application.rb ملفات الضبط (configuration) الخاصة بالبيئة المهيآت (Initializers) ما بعد المهيآت (After-initializers) تشغيل شيفرة برمجية قبل ريلز في أحيان نادرة، يحتاج تطبيقك لتشغيل بعض الشيفرات البرمجية قبل تحميل ريلز نفسه، ذا ضعها آنذاك قبل استدعاء require 'rails/all'‎ في ...

العمل مع JavaScript في ريلز

يغطي هذا الدليل وظيفة Ajax/JavaScript المضمّنة في ريلز (والمزيد)؛ وسوف يمكنك من إنشاء تطبيقات Ajax غنية وديناميكية بكل سهولة! ستتعلم بعد قراءة هذا الدليل: أساسيات Ajax. جافاسكربت الواضحة (Unobtrusive JavaScript). كيف يساعدك مساعدو ريلز المدمجون (built-in helpers). كيفية التعامل مع Ajax من طرف الخادم. الجوهرة Turbolinks. مقدمة لفهم Ajax لفهم أجاكس، يجب أولًا فهم ما يفعله متصفّح الويب بشكل طبيعي. عندما تكتب http://localhost:3000 في شريط عنوان المتصفّح وتضغط على "Go" ، يقدّم المتصفح ("العميل") طلبًا للخادم، ويفرز الاستجابة ثم يجلب ...

تخطيط الصفحات والتصيير في ريلز

يغطي هذا الدليل ميزات التخطيط الأساسية لوحدتي التحكم والعرض. بعد قراءة هذا الدليل، ستتعلم: كيفية استخدام توابع التصيير المختلفة المضمنة ‎في ريلز. كيفية إنشاء تخطيطات (layouts) تحتوي على أقسام محتوى متعددة. كيفية استخدام الأجزاء مع واجهات العرض. كيفية استخدام تخطيطات متداخلة (قوالب فرعية). نظرة عامة: كيف تتراكب قطع الأحجية معًا يركز هذا الدليل على التفاعل بين المتحكم والعرض في نمط التصميم Model-View-Controller. كما تعلم، فإنَّ المتحكم مسؤول عن تنظيم العملية الكاملة للتعامل مع الطلب في ريلز، على الرغم من أنه ...

تهجيرات Active Record في ريلز

التهجيرات (Migrations) هي ميزة من Active Record التي تمكّنك من تحديث مخطط قاعدة البيانات على مر الوقت. بدلًا من كتابة تعديلات قاعدة البيانات باستخدام SQL، تمكّنك التهجيرات من كتابة تعليمات DSL باستخدام روبي لتحديث جداولك. بعد قراءة هذا الدليل، ستتعرَّف على: المولِّدات التي تستطيع استعمالها لإنشاء التهجيرات. التوابع التي يوفرها Active Record لتعديل قاعدة البيانات. المهام bin/rails التي تعدِّل وتتحكم بالتهجيرات والمخطط (schema) الخاص بك. العلاقة بين التهجيرات والملف schema.rb. نظرة عامة على التهجيرات إن التهجيرات هي طريقة مناسبة وسلسة ...

أساسيات إنشاء الإضافات في ريلز

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

نظرة عامة على وحدة العرض في ريلز

بعد قراءة هذا الدليل، ستعرف: ما هو Action View وكيفية استخدامه مع ريلز. أفضل طريقة لاستخدام القوالب والجزئيات (partials) والتخطيطات. ما الذي يقدمه المساعدون عن طريق Action View. كيفية استخدام العروض المحلية. ما هو Action View؟ في ريلز، تُعَالَج طلبات الويب من خلال Action Controller و Action View. عادةً ما يقع على عاتق وحدة التحكم التواصل مع قاعدة البيانات وتنفيذ الإجراءات CRUD عند الضرورة؛ بعد ذلك، يكون Action View مسؤولًا عن تفسير (compiling) الاستجابة. تُكتَب قوالب Action View باستخدام روبي ...

أساسيات Action Mailer في ريلز

يوفّر لك هذا الدليل كل ما تحتاجه للبدء في إرسال واستقبال رسائل البريد الإلكتروني من وإلى تطبيقك، والعديد من عمليّات Action Mailer الداخليّة. كما يغطي كيفية اختبار مُرسلي بريدك (mailers). ستتعلم بعد قراءة هذا الدليل: كيفيّة إرسال واستقبال البريد الإلكتروني داخل تطبيق ريلز. كيفيّة إنشاء وتعديل صنف Action Mailer والعرض المرتبط به. كيفيّة إعداد Action Mailer لبيئتك. كيفيّة اختبار أصنافك لـ Action Mailer. مقدمة يسمح لك Action Mailer بإرسال رسائل البريد الإلكتروني من تطبيقك باستخدام الأصناف mailer والعروض المرتبطة بها ...

المكتبة Action Mailer في ريلز

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

أساسيات Active Job في ريلز

يوفّر لك هذا الدليل كل ما تحتاج إليه للبدء في إنشاء وظائف خلفية (background jobs) وإدراجها بطوابير الانتظار وتنفيذها. بعد قراءة هذا الدليل، ستتعلم: كيفيّة إنشاء وظائف. كيفيّة إدراج الوظائف بالطوابير. كيفيّة تشغيل الوظائف في الخلفية. كيفيّة إرسال رسائل البريد الإلكتروني من التطبيق الخاص بك بشكل غير متزامن. مقدّمة Active Job هي إطار عمل للتصريح عن الوظائف وجعلها تعمل على مجموعة متنوعة من نظم الطوابير الخلفية (queuing backends). يمكن أن تكون هذه الوظائف أي شيء بدءًا من التنظيف المنتظم إلى ...

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

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

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

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

أساسيات Active Record في ريلز

هذا الدليل هو مدخل إلى المكتبة Active Record. بعد قراءة هذا الدليل، ستتعرف على: ما هي تقنية ORM (اختصار للعبارة Object Relational Mapping أي "ربط الكائنات العِلاقيَّة") وما هو Active Record وكيفية استعمالهما في ريلز. كيف ينسجم Active Record مع النموذج MVC (اختصار للعبارة Model-View-Controller). كيفية استعمال نماذج Active Record (أي Active Record models) لمعالجة وتعديل البيانات المخزَّنة في قاعدة بيانات عِلاقيِّة (relational database). اصطلاحات تسمية مخطَّط Active Record. مفهوم تهجيرات، وتحققات، وردود نداء قاعدة البيانات. ما هو Active Record؟ ...

نظرة خاطفة على وحدة التحكم في ريلز

ستتعرف في هذا الدليل على كيفية عمل وحدات التحكم (Controller) وكيفية ملاءمتها مع دورة الطلب (request cycle) في التطبيق الخاص بك. بعد قراءة هذا الدليل، ستتعلم: كيفية اتباع تدفق الطلب من خلال وحدة تحكم. كيفية تقييد المعاملات التي مُرّرت إلى وحدة التحكم الخاصة بك. كيف ولماذا تخزَّن البيانات في الجلسة (session) أو ملفات تعريف الارتباط (cookies). كيفية العمل مع المرشحات (filters) لتنفيذ التعليمات البرمجية أثناء معالجة الطلب. كيفية استخدام استيثاق HTTP المضمن في وحدة التحكم. كيفية تدفق البيانات مباشرة إلى ...

الوحدة webbrowser في بايثون

تقدّم وحدة webbrowser واجهة متطوّرة تسمح بعرض مستندات الويب على المستخدمين. في أغلب الحالات يكفي استدعاء الدالة open()‎ ببساطة للقيام بكلّ شيء على نحو سليم. تكون متصفّحات الويب الرسومية graphical browser مفضّلة مع محرّك العرض X11، ولكنّ تستخدم الوحدة المتصفّحات النصية text-mode browsers إن كانت المتصفّحات الرسومية غير متوفّرة، أو كان محرّك العرض X11 غير متاح لاستخدام. وعند استخدام المتصفّحات النصية تتوقّف عملية الاستدعاء إلى حين خروج المستخدم من المتصفّح. إن كان متغيّر البيئة BROWSER موجودًا، فإنّه سيفسّر كقائمة os.pathsep ...

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

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

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

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

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

PHP 4 >= 4.0.3, PHP 5, PHP 7)‎) تعيد الدالة session_cache_limiter()‎ أو تضبط محدّد ذاكرة التخزين المؤقتة. الوصف string session_cache_limiter ([ string $cache_limiter ] )‎ تعيد الدالة session_cache_limiter()‎ اسم محدّد ذاكرة التخزين المؤقتة الحالية. يحدّد محدّد ذاكرة التخزين المؤقت أيّة ذاكرة تخزين مؤقتة يتم من خلالها إرسال ترويسات HTTP إلى العميل. تحدّد هذه الترويسات القواعد التي قد يتم تخزين محتوى الصفحة بها مؤقتًا بواسطة العميل ووكلاء وسيطة (intermediate proxies). لا يسمح تعيين محدد ذاكرة التخزين المؤقتة إلى nocache بالتخزين المؤقت للعميل. ...

حاوي الخدمات (Service Container) في Laravel

مقدمة حاوي خدمات Laravel (أي Laravel service container) هو أداةٌ قوية لإدارة اعتِماديَّات (dependencies) الصِّنف والقيام بإضافة اعتِماديَّات (dependency injection)." إضافة الاعتِماديَّات" هو مصطلح تقني يعني في مُجمله "إضافة" اعتماديات الصنف باستخدام التابع الباني (constructor) أو في بعض الحالات توابع ضبط القيم (setter). لنلقِ نظرة على هذا المثال البسيط: <?php namespace App\Http\Controllers; use App\User; use App\Repositories\UserRepository; use App\Http\Controllers\Controller; class UserController extends Controller { /** * مستودع المُستخدِم تطبيق * * @var ...

المكتبة Active Storage في ريلز

يجعل Active Storage عملية رفع الملفات وإنشاء مرجع لها في أي خدمة سحابية - مثل Amazon S3، أو Google Cloud Storage، أو Microsoft Azure Storage - وربطها بنماذج Active Record عمليةً بسيطةً وسهلةً. يدعم أيضًا امتلاك خدمة تخزين أساسية في خدمة سحابية، وخدمة تخزين انعكاسية (mirror) في خدمات سحابية أخرى وذلك من أجل تحقيق التوافر الدائم. أضف إلى ذلك أنه يوفر خدمة التخزين على قرص صلب (disk service) للفحص أو النشر المحلي ولكن التركيز الأساسي ينصب على التخزين السحابي. يمكن ...

الدالة webbrowser.register()‎‎ في بايثون

تسجّل الدالة نوع المتصفّح المعطى، وبعد تسجيل نوع المتصفّح باستخدام هذه الدالة يصبح بإمكان الدالة get()‎ أن تعيد متحكّمًا لنوع المتصفّح المسجَّل. البنية العامة webbrowser.register(name, constructor, instance=None, *, preferred=False) المعاملات ‎instance إن لم يكن هذا المعامل موجودًا، أو أخذ القيمة None، المعامل constructor سيستدعى دون أيّ معاملات وذلك لإنشاء نسخة عند الحاجة. أما إذا أخذ المعامل قيمة معيّنة، فإنّ المعامل constructor لن يستدعى إطلاقًا، وقد يحمل القيمة None. preferred يؤدي تعيين القيمة True لهذا المعامل إلى جعل هذا المتصفّح النتيجةَ ...

الجدول ASCII في أردوينو

يرجع الترميز ASCII (اختصارٌ إلى American Standard Code for Information Interchange) إلى ستينيات القرن الماضي، وكان يُعدُّ الطريقة القياسية المتبعة آنذاك (والتي لا تزال مستعملة إلى يومنا هذا) في ترميز النصوص عدديًّا. انتبه إلى أنَّ المحارف 32 الأولى من هذا الجدول هي محارف غير مطبوعة (non-printing characters)، وتدعى غالبًا محارف التحكم (control characters). القيمة العشرية القيمة الست عشرية المحرف   القيمة العشرية القيمة الست عشرية المحرف القيمة العشرية القيمة الست عشرية المحرف 0 00 NUL (null) 42 2A * 85 ...

التحميل التلقائي وإعادة تحميل الثوابت في ريلز

يوثق هذا الدليل طريقة عمل التحميل التلقائي وإعادة تحميل الثوابت. بعد قراءة هذا الدليل، ستتعلم: الجوانب الرئيسية لثوابت لغة روبي. ماهية autoload_paths وكيفية عمل التحميل الحثيث (eager loading) في الإنتاج. كيفية عمل التحميل التلقائي للثابت. ماهية need_dependency. كيفية عمل إعادة التحميل للثابت. حلول للتحميل التلقائي المشترك. المقدمة تسمح لغة ريلز بكتابة تطبيقات كما لو حملت الشيفرة الخاص بها مسبقًا. في أصناف برنامج روبي عادي، تحتاج إلى تحميل جميع اعتماديته (dependencies): require 'application_controller' require 'post' class PostsController < ApplicationController def index ...

الدالة webbrowser.get()‎‎ في بايثون

تعيد الدالة كائن controller لنوع المتصفّح المعطى. البنية العامة webbrowser.get(using=None) المعاملات ‎using إن أخذ هذا المعامل القيمة None فإنّ الدالة ستعيد كائنًا للمتصفّح الافتراضي يكون ملائمًا لبيئة الاستدعاء. هناك عددٌ من أنواع المتصفّحات المعرّفة مسبقًا، ويبين الجدول التالي أسماء هذه الأنواع والتي يمكن تمريرها إلى الدالة get()‎ وإنشاء أصناف ذات أنواع مختلفة: اسم المتصفح الصنف ملاحظات 'mozilla' Mozilla('mozilla')‎   'firefox' Mozilla('mozilla')‎   'netscape' Mozilla('netscape')‎   'galeon' Galeon('galeon')‎   'epiphany' Galeon('epiphany')‎   'skipstone' BackgroundBrowser('skipstone')‎   'kfmclient' Konqueror()‎ (1) 'konqueror' Konqueror()‎ (1) ...

الخيوط وتنفيذ الشيفرة في ريلز

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

تثبيت روبي على مختلف المنصات

توجد عدة طرق لتنزيل وتثبيت روبي على كل منصة وهي: في لينكس (والأنظمة الشبيه بيونكس)، تستطيع استعمال نظام مدير الحزم لتوزيعتك (الطريقة الأسهل) أو أية أداة من طرف ثالث (مثل rbenv و RVM). على أي حال، إصدار روبي المثبت عن طريق نظام مدير الحزم قد لا يكون هو الإصدار الأحدث، لذا انتبه لهذا الأمر. في macOS، يمكنك استعمال مدير الحزم أو أداة من طرف ثالث (مثل rbenv و RVM). في ويندوز، تستطيع استخدام RubyInstaller. يمكنك باستعمال المثبِّت هذا تثبيت إصدار ...

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

‎.serializeArray()‎ القيم المعادة يعيد مصفوفة من النوع Array. الوصف يُرمِّز هذا التابع مجموعة من عناصر النماذج ويضعها في مصفوفة على شكل أسماء وقيم من أجل إرسالها. ‎.serializeArray()‎ أُضيف مع الإصدار: 1.2. ولا يقبل هذا التابع أية وسائط. ينشئ التابع ‎.serializeArray()‎ مصفوفة من كائناتٍ قابلةٍ لتكون مرمَّزة بصيغة JSON. يمكن تطبيقه على مجموعة jQuery تحتوي على عناصر نموذج <form> و/أو عناصر تحكم بالنموذج (form controls). يمكن أن تكون عناصر التحكم من أنواع مختلفة: <form> <div><input type="text" name="a" value="1" id="a"></div> ...

الدالة ()os.ctermid في بايثون

تُعيد الدالة اسم ملف الطرفية المتحكمة بالعملية. البنية العامة ctermid() الدالة متوافرة في أنظمة يونكس. القيمة المعادة تُعيد الدالة اسم ملف الطرفية المتحكمة (controlling terminal) بالعملية. أمثلة >>> from os import ctermid >>> ctermid() '/dev/tty' مصادر قسم الوحدة os في توثيق بايثون الرسمي.

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

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

التابع controller.open_new()‎‎ في بايثون

يعرض التابع العنوان المعطى باستخدام المتصفّح الذي يتحكّم فيه هذا المتحكّم. البنية العامة controller.open_new(url) المعاملات url العنوان المراد فتحه بواسطة التابع. أمثلة يبين المثال التالي طريقة عمل التابع: >>> import webbrowser >>> firefox = webbrowser.get('firefox') >>> firefox.open_new("https://wiki.hsoub.com") انظر أيضًا التابع controller.open()‎: يعرض التابع العنوان المعطى باستخدام المتصفّح الذي يتحكّم فيه هذا المتحكّم. التابع controller.open_new_tab()‎: يفتح التابع العنوان المعطى في تبويب جديد في المتصفّح الذي يتحكّم به هذا المتحكّم، إن كان ذلك ممكنًا. مصادر صفحة Convenient Web-browser controller في توثيق بايثون الرسمي.

التابع controller.open_new_tab()‎‎ في بايثون

يعرض التابع العنوان المعطى باستخدام المتصفّح الذي يتحكّم فيه هذا المتحكّم. البنية العامة controller.open_new_tab(url) المعاملات url العنوان المراد فتحه بواسطة التابع. أمثلة يبين المثال التالي طريقة عمل التابع: >>> import webbrowser >>> firefox = webbrowser.get('firefox') >>> firefox.open_new_tab("https://wiki.hsoub.com") انظر أيضًا التابع controller.open()‎: يعرض التابع العنوان المعطى باستخدام المتصفّح الذي يتحكّم فيه هذا المتحكّم. التابع controller.open_new()‎: يفتح التابع العنوان المعطى في نافذة جديدة في المتصفّح الذي يتحكّم به هذا المتحكّم، إن كان ذلك ممكنًا. مصادر صفحة Convenient Web-browser controller في توثيق بايثون الرسمي.

الدالة webbrowser.open_new_tab()‎‎ في بايثون

تفتح الدالة العنوان المعطى في تبويب جديد (tab) في المتصفّح الافتراضي، إن كان ذلك ممكنًا، وإلّا فإنّ الدالة تكون مكافئة للدالة webbrowser.open_new()‎. البنية العامة webbrowser.open_new_tab(url) المعاملات ‎url العنوان المراد فتحه في المتصفّح. أمثلة يبين المثال التالي طريقة عمل التابع: >>> import webbrowser >>> webbrowser.open_new_tab("http://wiki.hsoub.com") انظر أيضًا الدالة webbrowser.open()‎: تعرض الدالة العنوان المعطى في المتصفّح الافتراضي. الدالة webbrowser.open_new()‎: تفتح الدالة العنوان المعطى في نافذة جديدة في المتصفّح الافتراضي، إن كان ذلك ممكنًا. مصادر صفحة Convenient Web-browser controller في توثيق بايثون الرسمي.

الدالة webbrowser.open_new()‎‎ في بايثون

تفتح الدالة العنوان المعطى في نافذة جديدة في المتصفّح الافتراضي، إن كان ذلك ممكنًا، وإلا فإنّها ستفتح العنوان المعطى في النافذة الموجودة فقط. البنية العامة webbrowser.open_new(url) المعاملات ‎url العنوان المراد فتحه في المتصفّح. أمثلة يبين المثال التالي طريقة عمل التابع: >>> import webbrowser >>> webbrowser.open_new("http://wiki.hsoub.com") انظر أيضًا الدالة webbrowser.open()‎: تعرض الدالة العنوان المعطى في المتصفّح الافتراضي. الدالة webbrowser.open_new_tab()‎: تفتح الدالة العنوان المعطى في تبويب جديد (tab) في المتصفّح الافتراضي، إن كان ذلك ممكنًا. مصادر صفحة Convenient Web-browser controller في توثيق بايثون ...

ترقيم الصفحات Pagination في Laravel

مقدمة كثيرًا ما يكون ترقيم الصفحات في الأطر الأخرى متعبًا جدًا. هنا في Laravel، دُمج مُرقّم صفحات Laravel مع منشئ الاستعلامات و رابط الكائنات بالعلاقات Eloquent، وهو يوفّر ترقيم صفحات لنتائج قواعد البيانات سهل الاستخدام فورًا. يتوافق HTML المُنشئ بواسطة مُرقّم الصفحات مع إطار عمل Bootstrap CSS. الاستخدام الأساسي ترقيم نتائج صفحات منشئ الاستعلام هناك عدّة طرق لترقيم العناصر. أبسطها باستخدام التابع paginate على منشئ الاستعلامات أو Eloquent الاستعلامات. يهتم التابع paginate تلقائيًا بإعداد الحد و والإزاحة (offset) المناسبة استنادًا ...

العنصر

يُستعمَل العنصر <video> لتضمين المحتوى المرئي في المستندات، وقد يحتوي على ملف مصدري واحد أو أكثر التي تُمثَّل باستخدام الخاصية src أو عبر العنصر <source>، وسيختار المتصفح أنسب صيغة لتشغيلها. مثال عن استخدام العنصر <video> لإضافة مقطع فيديو بصيغة WebM (عبر الخاصية src) بارتفاع 360، مع عرض عناصر التحكم (عبر الخاصية controls) وله صورة غلاف تُعرَض إلى أن يبدأ تشغيله (الخاصية poster)، وستُعرَض رسالة نصية تنوِّه المستخدم أنَّ متصفحه لا يدعم العنصر <video>: <video src="khamsat.webm" controls poster="khamsat-poster.jpg" height="360"> لا ...

التابع throw‎ الخاص بالصنف Kernel في روبي

ينقل التابع throw الضبط (control) إلى نهاية الكتلة catch المُترقبة للوسم المعطى (tag). إذا لم يكن هناك كتلة catch لذلك الوسم، فسيطلق الخطأ UncaughtThrowError. يوفر الوسيط الاختياري الثاني في حال تمريره قيمة لتُعيدها الكتلة catch، وإلا فستعيد nil. للحصول على بعض الأمثلة، انظر صفحة التابع catch. البنية العامة throw(tag [, obj])‎ المعاملات tag‎ الوسم الذي تترقبه الكتلة catch. obj‎ وسيط اختياري يوفر -في حال تمريره- قيمة لتُعيدها الكتلة catch. انظر أيضا التابع catch: ينفذ كتلته البرمجية. في حال عدم استدعاء throw، فستنفّذ ...

مساعدو الاستمارة في وحدة العرض في ريلز

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

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

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

العنصر

يُستعمَل العنصر <audio> لتضمين المحتوى الصوتي في المستندات، وقد يحتوي على ملف مصدري واحد أو أكثر التي تُمثَّل باستخدام الخاصية src أو عبر العنصر <source>، وسيختار المتصفح أنسب الملفات الصوتية لتشغيلها. المثال الآتي يستخدم العنصر <audio> مع الخاصية autoplay لتشغيل الصوت تلقائيًا مع تحديد رابط URL للملف المصدري عبر الخاصية src: <audio src="khamsat.mp3" autoplay> لا يدعم متصفحك العنصر <code>audio</code>. </audio> أما المثال الآتي ففيه العنصر <audio> مع استخدام خاصية controls لإضافة أزرار للتحكم بالمقطع، وسيُحدَّد رابط URL للمقطع عبر العنصر <source>: ...

التابع trace_var‎ الخاص بالصنف Kernel في روبي

يضبط (Controls) التابع trace_var تعقّبات (tracing) تعيين المتغيرات العامة. البنية العامة trace_var(symbol, cmd ) → nil trace_var(symbol) {|val| block } → nil‎ يحدد الوسيط المعطى symbol المتغير (إمَّا على شكل سلسلة نصية أو معرف رمز [symbol identifier]). يتم تنفيذ الأمر cmd (الذي قد يكون سلسلةً نصيةً أو كائن من النوع Proc أو كتلةً برمجيةً) كلما تم تعيين المتغير ثم تتلقى الكتلة أو الكائن Proc القيمة الجديدة للمتغير كوسيط. المعاملات symbol‎ يحدد المتغير. cmd‎ التعليمة المراد تنفيذها كلما تم تعيين المتغير. القيمة المعادة ...

التابع controller.open()‎‎ في بايثون

يعرض التابع العنوان المعطى باستخدام المتصفّح الذي يتحكّم فيه هذا المتحكّم. البنية العامة controller.open(url, new=0, autoraise=True) المعاملات new إذا كانت قيمة هذا المعامل هي 1 فإنّ التابع يفتح نافذة متصفّح جديدة إن كان ذلك ممكنًا، وإن كانت قيمة المعامل هي 2 فإنّ التابع يفتح في تبويب tab جديد إن كان ذلك ممكنًا. autoraise إن أخذ هذا المعامل القيمة True، فإنّ نافذة المتصفّح ستُعرض في الواجهة الأمامية (لاحظ أنّ هذا هو السلوك الافتراضي في معظم أنظمة إدارة النوافذ، وتعيين قيمة لهذا ...

تعابير lambda في بايثون

يمكن إنشاء دوال لا تحمل أسماء باستخدام الكلمة المفتاحية lambda، وتأخذ هذه الدوال الصيغة التالية: lambda arguments: expression تسلك هذه الصيغة المختصرة سلوك دالة معرفة بالطريقة التالية: def <lambda>(arguments): return expression على سبيل المثال، تعيد الدالة التالية مجموع الوسيطين الخاصين بها: lambda a, b: a+b يمكن استخدام دوال lambda عند الحاجة إلى كائنات الدالة (function objects)، وتأخذ هذه الدوال تعبيرًا واحدًا فقط، وهي تعدّ صيغةً مختصرةً للطريقة الاعتيادية في تعريف الدوال. كما هو الحال مع تعريفات الدوال المتداخلة، يمكن لدوال ...

تعابير lambda في بايثون

يمكن إنشاء دوال لا تحمل أسماء باستخدام الكلمة المفتاحية lambda، وتأخذ هذه الدوال الصيغة التالية: lambda arguments: expression تسلك هذه الصيغة المختصرة سلوك دالة معرفة بالطريقة التالية: def <lambda>(arguments): return expression على سبيل المثال، تعيد الدالة التالية مجموع الوسيطين الخاصين بها: lambda a, b: a+b يمكن استخدام دوال lambda عند الحاجة إلى كائنات الدالة (function objects)، وتأخذ هذه الدوال تعبيرًا واحدًا فقط، وهي تعدّ صيغةً مختصرةً للطريقة الاعتيادية في تعريف الدوال. كما هو الحال مع تعريفات الدوال المتداخلة، يمكن لدوال ...

مقدمة إلى التعامل مع قواعد البيانات في Laravel

مقدمة يُبسّط Laravel التعامل مع قواعد البيانات بشكل كبير عبر مجموعة متنوعة من الأسندة الخلفية (backends) قواعد البيانات إمّا باستخدام  لغة الاستعلام البنيوية SQL خام أو باستخدام منشئ الاستعلامات الفصيح (fluent query builder)، أو باستخدام رابط الكائنات بالعلاقات Eloquent. يدعم Laravel حاليًا أربع قواعد بيانات: MySQL PostgreSQL SQLite SQL Server الضبط تقع إعدادات قاعدة بيانات تطبيقك في config/database.php. تستطيع في هذا الملف تعريف جميع اتصالات قاعدة بياناتك لإضافةً لتحديد الاتصال الافتراضي. تتوافر أمثلة عن معظم أنظمة قواعد البيانات المدعومة في ...

الصنف Signal في روبي

تسمح العديد من أنظمة التشغيل بإرسال إشارات إلى العمليات (processes) قيد التشغيل للتحكم بها. بعض الإشارات لها تأثير محدد على العملية، بينما تكون أخرى مرتبطة بالشيفرة البرمجية، وتتصرف بناء عليها. على سبيل المثال، قد تقوم العملية بإمساك (trap) الإشارة USR1 واستخدامها في عملية التنقيح (debugging)، أو قد تُستخدَم الإشارة TERM لبدء إيقاف تشغيل العملية بشكل مُراقَب. pid = fork do Signal.trap("USR1") do $debug = !$debug puts "Debug now: #$debug" end Signal.trap("TERM") ...

صيغة بديلة لبنى التحكم في PHP

(PHP 4, PHP 5, PHP 7) تقدّم PHP صيغة مختلفة لبعض بنى التحكّم المتوفّرة فيها، وهي if و while و for و foreach و switch. وفي جميع الأحوال يمكن استخدام الصيغة البديلة بوضع نقطتين رأسيتين (:) بدلًا من القوس المعقوف في بداية العبارة ووضع العبارة endif;‎ أو endwhile;‎ أو endfor;‎ أوendforeach; ‎ أو endswitch;‎ في النهاية حسب الحاجة. <?php if ($a == 5): ?> A is equal to 5 <?php endif; ?> في المثال السابق أُدخلِت كتلة HTML والتي تتضمن الجملة "A ...

صيغة بديلة لبنى التحكم في PHP

(PHP 4, PHP 5, PHP 7) تقدّم PHP صيغة مختلفة لبعض بنى التحكّم المتوفّرة فيها، وهي if و while و for و foreach و switch. وفي جميع الأحوال يمكن استخدام الصيغة البديلة بوضع نقطتين رأسيتين (:) بدلًا من القوس المعقوف في بداية العبارة ووضع العبارة endif;‎ أو endwhile;‎ أو endfor;‎ أوendforeach; ‎ أو endswitch;‎ في النهاية حسب الحاجة. <?php if ($a == 5): ?> A is equal to 5 <?php endif; ?> في المثال السابق أُدخلِت كتلة HTML والتي تتضمن الجملة "A ...

الترخيص (Authorization) في Laravel

مقدمة بالإضافة إلى توفير خدمات الاستيثاق المضمنة بإطار العمل Laravel، يوفر Laravel أيضًا طريقة بسيطة لترخيص عمليات المستخدم على مورد معين. مثلما هو الحال مع الاستيثاق، فإن أسلوب Laravel للترخيص بسيط، وهناك طريقتان أساسيتان لترخيص العمليات: البوابات والسياسات (gates and policies). فكر في البوابات والسياسات مثل المسارات ووحدات التحكم. توفر البوابات أسلوبًا بسيطًا يعتمد على الإغلاق للترخيص، بينما تقوم السياسات، مثل وحدات التحكم، بتجميع منطقها حول نموذج معين أو مورد. سنستكشف البوابات أولاً ثم نفحص السياسات. لست بحاجة إلى الاختيار ...

نظرة سريعة على التخزين المؤقت في ريلز

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

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

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

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

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

Laravel Socialite

مقدمة بالإضافة إلى الاستيثاق النمطي القائم على النموذج، يوفر Laravel أيضًا طريقة بسيطة ومريحة للاستيثاق مع موفري OAuth باستخدام Laravel Socialite، وهو يدعم حاليا الاستيثاق مع Facebook و Twitter و LinkedIn وGoogle و GitHub و Bitbucket. ملاحظة: المحولات للمنصات الأخرى موجودة في موقع مجتمع Socialite Providers. التثبيت استخدم Composer لإضافة الحزمة إلى اعتماديّات مشروعك لبدء استخدام Socialite: composer require laravel/socialite الضبط ستحتاج قبل استخدام Socialite إلى إضافة بيانات اعتماد لخدمات OAuth التي يستخدمها تطبيقك في ملف الضبط config/services.php ويجب استخدام ...

if في بايثون

تقدّم بايثون عبارة if للتحكم المشروط بتدفق الشيفرة، وتأخذ الصيغة التالية: if expression: statement فعلى سبيل المثال: >>> x = int(input("Please enter an integer: ")) Please enter an integer: -16 >>> if x < 0: ...     x = 0 ...     print('Negative changed to zero') Negative changed to zero عبارة elif يمكن استخدام عبارة elif (وهي اختصار لعبارة 'else if' ) عند الحاجة إلى التحقق من شروط إضافية، وكما هو موضح في المثال التالي: >>> x = int(input("Please enter an integer: ")) Please ...

عوامل التحكم بالأخطاء في PHP

تدعم PHP عاملًا واحدًا للتحكّم بالأخطاء وهو علامة (@). تتجاهل PHP جميع الأخطاء الناتجة من أي تعبير تُلحق به هذه العلامة. إن كنت قد عينت دالة خاصة للتعامل مع الأخطاء باستخدام set_error_handler()‎ فستستدعى تلك الدالة حتى مع استخدام هذا العامل، ولكن يمكن للدالة الخاصة (بل ويجدر بها) أن تستدعي الدالة error_reporting()‎ والتي ستعيد 0 عندما يكون الاستدعاء المتسبب في حدوث الخطأ مسبوقًا بعلامة @. إن كانت الخاصية track_errors مفعّلة فإن أيّ رسالة خطأ تنشأ من التعبير ستحفظ في المتغير ‎$php_errormsg، ...

if في بايثون

تقدّم بايثون عبارة if للتحكم المشروط بتدفق الشيفرة، وتأخذ الصيغة التالية: if expression: statement فعلى سبيل المثال: >>> x = int(input("Please enter an integer: ")) Please enter an integer: -16 >>> if x < 0: ...     x = 0 ...     print('Negative changed to zero') Negative changed to zero عبارة elif يمكن استخدام عبارة elif (وهي اختصار لعبارة 'else if' ) عند الحاجة إلى التحقق من شروط إضافية، وكما هو موضح في المثال التالي: >>> x = int(input("Please enter an integer: ")) Please ...

الدالة webbrowser.open()‎‎ في بايثون

تعرض الدالة العنوان المعطى في المتصفّح الافتراضي. البنية العامة webbrowser.open(url, new=0, autoraise=True) ‎ المعاملات ‎url العنوان المراد فتحه في المتصفّح. new معامل اختياري، يمكن أن يأخذ القيمة 0 وحينئذٍ يُفتح العنوان المعطى في نفس نافذة المتصفّح إن كان ذلك ممكنًا. وإن أخذ القيمة 1، تفتح الدالة نافذة متصفّح جديدة إن كان ذلك ممكنًا، وإن أخذ المعامل القيمة 2 فإنّ الدالة تفتح صفحة متصفّح (tab) جديدة إن كان ذلك ممكنًا. autoraise إن أخذ هذا المعامل القيمة True، فإنّ نافذة المتصفّح ستُعرض ...

عوامل التحكم بالأخطاء في PHP

تدعم PHP عاملًا واحدًا للتحكّم بالأخطاء وهو علامة (@). تتجاهل PHP جميع الأخطاء الناتجة من أي تعبير تُلحق به هذه العلامة. إن كنت قد عينت دالة خاصة للتعامل مع الأخطاء باستخدام set_error_handler()‎ فستستدعى تلك الدالة حتى مع استخدام هذا العامل، ولكن يمكن للدالة الخاصة (بل ويجدر بها) أن تستدعي الدالة error_reporting()‎ والتي ستعيد 0 عندما يكون الاستدعاء المتسبب في حدوث الخطأ مسبوقًا بعلامة @. إن كانت الخاصية track_errors مفعّلة فإن أيّ رسالة خطأ تنشأ من التعبير ستحفظ في المتغير ‎$php_errormsg، ...

Laravel Cashier

مقدمة يقدم Laravel Cashier واجهة قويّة لاشتراكات خدمات الفواتير Stripe و Braintree، وهي تعالج تقريبًا كل شيفرات boilerplate الخاصة باشتراك الفواتير التي تخشى من كتابتها، وبالإضافة إلى إدارة الاشتراكات الأساسية، يستطيع Cashier التعامل مع القسائم (coupons)، ومبادلة الاشتراكات وكميّات الاشتراكات وفترات السماح بالإلغاء وحتى إنشاء ملفات PDF للفواتير. تنبيه: إذا كنت تضع رسوم لمرة واحدةً فقط ولا توفّر الاشتراكات، فيجب عليك أن لا تستخدم Cashier، وبدلًا من ذلك، يجب عليك استخدام حزمة برمجيات التطوير (SDK) الخاصة بـ Braintree و Stripe ...

Laravel Cashier

مقدمة يقدم Laravel Cashier واجهة قويّة لاشتراكات خدمات الفواتير Stripe و Braintree، وهي تعالج تقريبًا كل شيفرات boilerplate الخاصة باشتراك الفواتير التي تخشى من كتابتها، وبالإضافة إلى إدارة الاشتراكات الأساسية، يستطيع Cashier التعامل مع القسائم (coupons)، ومبادلة الاشتراكات وكميّات الاشتراكات وفترات السماح بالإلغاء وحتى إنشاء ملفات PDF للفواتير. تنبيه: إذا كنت تضع رسوم لمرة واحدةً فقط ولا توفّر الاشتراكات، فيجب عليك أن لا تستخدم Cashier، وبدلًا من ذلك، يجب عليك استخدام حزمة برمجيات التطوير (SDK) الخاصة بـ Braintree و Stripe ...

دوال التعامل مع المحارف والتحقق منها في أردوينو

تعمل هذه الدوال مع المحارف بشكل عام، إذ تتحقَّق من كون محرف محدَّد ينتمي إلى مجموعةٍ معيَّنة من المحارف. isAlpha()‎ تتحقَّق الدالة isAlpha()‎ إن كان المحرف المُمرَّر إليها محرفًا أبجديًّا. isAlphaNumeric()‎ تتحقَّق الدالة isAlphaNumeric()‎ إن كان المحرف المُمرَّر إليها محرفًا أبجديًّا أو عددًا. isAscii()‎ تتحقَّق الدالة isAscii()‎ إن كان المحرف المُمرَّر إليها أحدَ المحارف Ascii. isControl()‎ تتحقَّق الدالة isControl()‎ إن كان المحرف المُمرَّر إليها أحدَ محارف التحكم (control character). isDigit()‎ تتحقَّق الدالة isDigit()‎ إن كان المحرف المُمرَّر إليها رقمًا. isGraph()‎ ...

التابع catch‎ الخاص بالصنف Kernel في روبي

ينفذ التابع catch كتلته البرمجية. في حال عدم استدعاء throw، فستنفّذ الكتلة بشكل طبيعي، وسيعيد catch قيمة آخر تعبير تم تقييمه. catch(1) { 123 } # => 123 إذا استُدعي throw(tag2, val)‎، فستبحث روبي في المكدس (stack) عن كتلة التابع catch، التي يكون العنوان tag الخاص بها نفس القيمة object_id الخاص بالعنوان tag2. وعند العثور عليه، يتوقف تنفيذ الكتلة وتُعاد val (أو القيمة nil إذا لم يتم تمرير وسيط ثاني ...

الجلسات HTTP في Laravel

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

بنى التحكم في PHP

تتكون جميع شيفرات PHP من سلسلة من العبارات (statements)، ويمكن للعبارة أن تكون إسنادًا (assignment) أو استدعاءً لدالّة، أو حلقة تكرارية، أو عبارة شرطية أو حتى عبارة لا تقوم بأي عمل على الإطلاق (عبارة فارغة). تنتهي العبارات عادة بالفاصلة المنقوطة (;)، ويمكن تجميع العبارات بإحاطتها بالأقواس المعقوفة ({}) لتصبح مجموعة عبارات (statement-group)، والتي تعدّ بدورها عبارات أيضًا. سنفصل الحديث في هذا الفصل عن أنواع متعددة من العبارات. if بنية if هي واحدة من أهم الميزات المتوفّرة في العديد من اللغات ...

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

jQuery.param( obj )‎ القيم المعادة يعيد سلسلةً نصيةً (Array). الوصف يرمِّز (serialize) هذا التابع محتويات مصفوفة، أو كائن مجرَّد، أو كائن jQuery ويضعها في سلسلة نصيَّة لتصبح ملائمة لاستعمالها في سلسلة الاستعلام النصية لعنوان URL أو لإرسالها في طلبات Ajax. في حال تمرير كائن jQuery، فيجب أن يحوي هذا الكائن عناصر إدخال <input> لها خاصِّيَّات بالشكل اسم/قيمة. jQuery.param( obj )‎ أُضيف مع الإصدار: 1.2. obj مصفوفة، أو كائن مجرَّد (Object)، أو كائن jQuery التي يراد ترميزها. jQuery.param( obj, traditional )‎ ...

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

jQuery.param( obj )‎ القيم المعادة يعيد سلسلةً نصيةً (Array). الوصف يرمِّز (serialize) هذا التابع محتويات مصفوفة، أو كائن مجرَّد، أو كائن jQuery ويضعها في سلسلة نصيَّة لتصبح ملائمة لاستعمالها في سلسلة الاستعلام النصية لعنوان URL أو لإرسالها في طلبات Ajax. في حال تمرير كائن jQuery، فيجب أن يحوي هذا الكائن عناصر إدخال <input> لها خاصِّيَّات بالشكل اسم/قيمة. jQuery.param( obj )‎ أُضيف مع الإصدار: 1.2. obj مصفوفة، أو كائن مجرَّد (Object)، أو كائن jQuery التي يراد ترميزها. jQuery.param( obj, traditional )‎ ...

حلقة while في Bash

كيفية عمل حلقة while تسمح حلقة while التكرارية بالتنفيذ المتكرر لقائمة أوامر طالما أن الأمر المتحكم في حلقة while يُنفَّذ بنجاح (حالة خروجه صفر). والبنية اللغوية لهذه الحلقة هي: while CONTROL-COMMAND; do CONSEQUENT-COMMANDS; done حيث يرمز CONTROL-COMMAND -وهو الأمر الذي سيتحكم في الحلقة- إلى أي أمر يخرج بحالة فشل أو نجاح، بينما قد تكون CONSEQUENT-COMMANDS -وهي الأوامر التي ستُكرَّر- أي برنامج أو برنامج للصدفة أو أحد بُنى الصدفة المختلفة. وتخرج الحلقة فور فشل الأمر المتحكِّم فيها، وإن كانت الحلقة في برنامج ...

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

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

CSS/Topics/Text

الخاصية الوصف direction تضبط اتجاه النص، ونستخدم القيمة rtl معها للإشارة إلى اللغات التي تُكتَب من اليمين إلى اليسار مثل اللغة العربية، و ltr للغات التي تُكتَب من اليسار إلى اليمين مثل اللغة الإنكليزية. لاحظ أنَّ اتجاه النص يُعرَّف عادةً باستخدام الخاصية dir على عنصر <html> لكامل المستند، وليس باستخدام الخاصية direction. letter-spacing تُحدِّد ما هو التباعد بين الأحرف النصية. line-break تُحدِّد سلوك المتصفح في الانتقال إلى سطرٍ جديد عند التعامل مع علامات الترقيم والرموز. overflow-wrap تُحدِّد إذا كان على المتصفح الانتقال إلى سطر جديد ضمن الكلمات نفسها لمنع ...

CSS/Topics/Text

الخاصية الوصف direction تضبط اتجاه النص، ونستخدم القيمة rtl معها للإشارة إلى اللغات التي تُكتَب من اليمين إلى اليسار مثل اللغة العربية، و ltr للغات التي تُكتَب من اليسار إلى اليمين مثل اللغة الإنكليزية. لاحظ أنَّ اتجاه النص يُعرَّف عادةً باستخدام الخاصية dir على عنصر <html> لكامل المستند، وليس باستخدام الخاصية direction. letter-spacing تُحدِّد ما هو التباعد بين الأحرف النصية. line-break تُحدِّد سلوك المتصفح في الانتقال إلى سطرٍ جديد عند التعامل مع علامات الترقيم والرموز. overflow-wrap تُحدِّد إذا كان على المتصفح الانتقال إلى سطر جديد ضمن الكلمات نفسها لمنع ...

الدالة isSpace()‎ في أردوينو

تتحقَّق الدالة isSpace()‎ إن كان المحرف المُمرَّر إليها فراغًا (space). البنية العامة isSpace(thisChar) المعاملات thisChar المحرف المراد التحقُّق منه. القيم المعادة تعاد القيمة true إن كان المعامل thisChar فراغًا. أمثلة مثالٌ على استعمال الدالة isSpace()‎: if (isSpace(this)) // فراغًا this التحقق إن كان المتغير { Serial.println("المحرف هو فراغ"); } else { Serial.println("ليس المحرف فراغًا"); } انظر أيضًا الدالة isAlpha()‎: تتحقَّق إن كان المحرف المُمرَّر إليها محرفًا أبجديًّا. الدالة isAlphaNumeric()‎: تتحقَّق إن كان المحرف المُمرَّر إليها محرفًا أبجديًّا أو عددًا. الدالة isAscii()‎ : تتحقَّق ...

سلاسل التوثيق النصية في بايثون

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

الدالة isDigit()‎ في أردوينو

تتحقَّق الدالة isDigit()‎ إن كان المحرف المُمرَّر إليها رقمًا. البنية العامة isDigit(thisChar) المعاملات thisChar المحرف المراد التحقُّق منه. القيم المعادة تعاد القيمة true إن كان المعامل thisChar رقمًا. أمثلة مثالٌ على استعمال الدالة isDigit()‎: if (isDigit(this)) // رقمًا this التحقق إن كان المتغير { Serial.println("المحرف هو رقم"); } else { Serial.println("ليس المحرف رقمًا"); } انظر أيضًا الدالة isAlpha()‎: تتحقَّق إن كان المحرف المُمرَّر إليها محرفًا أبجديًّا. الدالة isAlphaNumeric()‎: تتحقَّق إن كان المحرف المُمرَّر إليها محرفًا أبجديًّا أو عددًا. الدالة isAscii()‎ : تتحقَّق إن ...

سلاسل التوثيق النصية في بايثون

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

المكتبة Mouse في أردوينو

تتيح توابع المكتبة Mouse إمكانية تحكم اللوحات التي تعتمد على متحكمات 32u4 أو SAMD بمؤشر الفأرة في الحاسوب المتصل عبر المنفذ USB الأصلي للمتحكم. يكون موقع مؤشر الفأرة نسبي دومًا؛ فعند تحديث موقع مؤشر الفأرة الحالي وتحريكه، ينتقل المؤشر إلى الموقع الجديد نسبةً إلى موقعه القديم. تسمح المكتبات الأساسية للوحات التي ترتكز على متحكمات 32u4 و SAMD (مثل عائلة Leonardo، و Esplora، و Zero، و Due، و MKR) بجعل الفأرة و/أو لوحة المفاتيح تبدوان عند وصلهما بالحاسوب وكأنَّهما أصليتان. هنالك ...

الدالة isAlpha()‎ في أردوينو

تتحقَّق الدالة isAlpha()‎ إن كان المحرف المُمرَّر إليها محرفًا أبجديًّا. البنية العامة isAlpha(thisChar) المعاملات thisChar المحرف المراد التحقُّق منه. القيم المعادة تعاد القيمة true إن كان المعامل thisChar محرفًا أبجديًّا. أمثلة مثالٌ على استعمال الدالة isAlpha()‎: if (isAlpha(this)) // محرفًا أبجديًّا this التحقق إن كان المتغير { Serial.println("المحرف هو محرف أبجدي"); } else { Serial.println("ليس المحرف محرفًا أبجديًّا"); } انظر أيضًا الدالة isAlphaNumeric()‎: تتحقَّق إن كان المحرف المُمرَّر إليها محرفًا أبجديًّا أو عددًا. الدالة isAscii()‎ : تتحقَّق إن كان المحرف المُمرَّر إليها أحدَ ...

الدالة isGraph()‎ في أردوينو

تتحقَّق الدالة isGraph()‎ إن كان المحرف المُمرَّر إليها قابلًا للطباعة (printable) ويحوي بعض المحتوى المرئي (الفراغ قابلٌ للطباعة ولكنه لا يملك محتوى مرئي). البنية العامة isGraph(thisChar) المعاملات thisChar المحرف المراد التحقُّق منه. القيم المعادة تعاد القيمة true إن كان المعامل thisChar قابلًا للطباعة. أمثلة مثالٌ على استعمال الدالة isGraph()‎: if (isGraph(this)) // قابلًا للطباعة this التحقق إن كان المتغير { Serial.println("المحرف هو محرف قابلٌ للطباعة"); } else { Serial.println("ليس المحرف قابلًا للطباعة"); } انظر أيضًا الدالة isAlpha()‎: تتحقَّق إن كان المحرف المُمرَّر ...

الدالة isControl()‎ في أردوينو

تتحقَّق الدالة isControl()‎ إن كان المحرف المُمرَّر إليها أحدَ محارف التحكم (control character). البنية العامة isControl(thisChar) المعاملات thisChar المحرف المراد التحقُّق منه. القيم المعادة تعاد القيمة true إن كان المعامل thisChar أحدَ محارف التحكم. أمثلة مثالٌ على استعمال الدالة isControl()‎: if (isControl(this)) // Ascii محرف this التحقق إن كان المتغير { Serial.println("المحرف هو محرف تحكم"); } else { Serial.println("ليس المحرف محرف تحكم"); } انظر أيضًا الدالة isAlpha()‎: تتحقَّق إن كان المحرف المُمرَّر إليها محرفًا أبجديًّا. الدالة isAlphaNumeric()‎: تتحقَّق إن كان المحرف المُمرَّر ...

الدالة isAscii()‎ في أردوينو

تتحقَّق الدالة isAscii()‎ إن كان المحرف المُمرَّر إليها أحدَ المحارف Ascii. البنية العامة isAscii(thisChar) المعاملات thisChar المحرف المراد التحقُّق منه. القيم المعادة تعاد القيمة true إن كان المعامل thisChar أحدَ المحارف Ascii. أمثلة مثالٌ على استعمال الدالة isAscii()‎: if (isAscii(this)) // Ascii محرف this التحقق إن كان المتغير { Serial.println("Ascii المحرف هو محرف"); } else { Serial.println("Ascii ليس المحرف محرف"); } انظر أيضًا الدالة isAlpha()‎: تتحقَّق إن كان المحرف المُمرَّر إليها محرفًا أبجديًّا. الدالة isAlphaNumeric()‎: تتحقَّق إن كان المحرف المُمرَّر إليها محرفًا ...

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

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

نظرة عامة على Active Storage في ريلز

يغطّي هذا الدليل كيفيّة إرفاق ملفات بنماذج Active Record. ستتعلم بعد قراءة هذا الدليل: كيفية إرفاق ملف أو عدّة ملفّات بسجل (record). كيفيّة حذف ملف مُرفق. كيفيّة الربط بملف مُرفق. كيفيّة استخدام المتغيّرات (variants) لتحويل الصور. كيفيّة إنشاء تمثيل صُوَري (image representation) لملف غير صُوَري، مثل ملف PDF أو فيديو. كيفيّة إرسال تحميلات الملفّات مباشرةً من المتصفّحات إلى خدمة تخزين، دون المرور على خوادم تطبيقك. كيفيّة تنظيف الملفّات المخزّنة أثناء الاختبار. كيفيّة تعريف استخدام (implement) الدعم لخدمات تخزين إضافيّة. ما ...

توليد عناوين URL في Laravel

مقدمة يوفّر Laravel العديد من المساعدين لمساعدتك في إنشاء عناوين URL لتطبيقك. فائدتهم الأساسية تظهر طبعا عند بناء روابط في قوالبك (templates) واستجابات الواجهة البرمجيّة، أو عند توليد ردود إعادة توجيه إلى جزء آخر من تطبيقك. الأساسيات توليد عناوين URL أساسية يمكن استخدام المساعد url لتوليد عناوين URL عشوائية لتطبيقك. سيستخدم العنوان URL المُنشأ تلقائيًا المخطَّط (HTTP أو HTTPS) ويستضيف من الطلب الحالي: $post = App\Post::find(1); echo url("/posts/{$post->id}"); // http://example.com/posts/1 الوصول إلى العنوان URL الحالي سترد النسخة Illuminate\Routing\UrlGenerator إن لم يُوفّر أي ...

الدالة isAlphaNumeric()‎ في أردوينو

تتحقَّق الدالة isAlphaNumeric()‎ إن كان المحرف المُمرَّر إليها محرفًا أبجديًّا أو عددًا. البنية العامة isAlphaNumeric(thisChar) المعاملات thisChar المحرف المراد التحقُّق منه. القيم المعادة تعاد القيمة true إن كان المعامل thisChar محرفًا أبجديًّا أو عددًا. أمثلة مثالٌ على استعمال الدالة isAlphaNumeric()‎: if (isAlphaNumeric(this)) // محرفًا أبجديًّا أو عددًا this التحقق إن كان المتغير { Serial.println("المحرف هو محرف أبجدي أو عدد"); } else { Serial.println("ليس المحرف محرفًا أبجديًّا أو عددًا"); } انظر أيضًا الدالة isAlpha()‎: تتحقَّق إن كان المحرف المُمرَّر إليها محرفًا أبجديًّا. الدالة ...

تبسيط التعابير الشرطية (Simplifying Conditional Expressions)

تزداد البنية المنطقية للشروط تعقيدًا مع مرور الوقت، لذا هنالك الكثير من التقنيات لمواجهة هذا التعقيد وتبسيطه وهي: تجزئة الشَرطيات (Decompose Conditional) المشكلة: يوجد شَرط مُعقد (if-then/else أو switch). الحل: فصل الأجزاء المعقدة من الشَرط إلى توابع منفصلة: الشرط، و then و else. توحيد التعبير الشرطي (Consolidate Conditional Expression) المشكلة: وجود عدة شروط تؤدي إلى نفس النتيجة أو الإجراء. الحل: توحيد جميع هذه الشروط في تعبير وحيد. توحيد الأجزاء الشرطية المكررة (Consolidate Duplicate Conditional Fragments) المشكلة: شيفرة برمجية متطابقة موجودة في جميع فروع الشَرطيات. الحل: ...

الدالة isPunct()‎ في أردوينو

تتحقَّق الدالة isPunct()‎ إن كان المحرف المُمرَّر إليها أحد علامات الترقيم (أي هل المحرف فاصلة أو فاصلة منقوطة أو علامة تعجب ...إلخ.). البنية العامة isPunct(thisChar) المعاملات thisChar المحرف المراد التحقُّق منه. القيم المعادة تعاد القيمة true إن كان المعامل thisChar أحد علامات الترقيم. أمثلة مثالٌ على استعمال الدالة isPunct()‎: if (isPunct(this)) // أحد علامات الترقيم this التحقق إن كان المتغير { Serial.println("المحرف هو أحد علامات الترقيم"); } else { Serial.println("ليس المحرف علامة ترقيم"); } انظر أيضًا الدالة isAlpha()‎: تتحقَّق إن كان المحرف ...

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