اذهب إلى المحتوى

لوحة المتصدرين

  1. بلال زيادة

    بلال زيادة

    الأعضاء


    • نقاط

      3

    • المساهمات

      4376


  2. Wael Aljamal

    Wael Aljamal

    الأعضاء


    • نقاط

      2

    • المساهمات

      6975


  3. Oussama Yacoubi

    Oussama Yacoubi

    الأعضاء


    • نقاط

      1

    • المساهمات

      7


  4. سارة محمد2

    سارة محمد2

    الأعضاء


    • نقاط

      1

    • المساهمات

      86


المحتوى الأكثر حصولًا على سمعة جيدة

المحتوى الأعلى تقييمًا في 04/10/21 في كل الموقع

  1. مرحبا قتيبة، يمكنك رفع ملفات المشروع على إحدى الاستضافات المجانية والتي تدعم php و قواعد بيانات sql مثل heroku و سوف تتعلم خلال الدورة كيفية رفع المشروع على هذه المنصة كمثال تجريبي. إن عملية رفع مشروع php على الاستضافة عملية بسيطة و يمكنك أن تجد العديد من الاستضافات المجانية و شروحات حول كيفية التعامل معها من حلال بحث بسيط. ثم يمكنك مشاركة الرابط و إرساله للأصدقاء مثلا للتجريب. أتمنى لك التوفيق
    2 نقاط
  2. التحميل التلقائي (autoloading) كجزء من حل إطار العمل ملف autoload.php: spl_autoload_register(function ($class) { require_once "$class.php"; }); ملف Animal.php: class Animal { public function eats($food) { echo "Yum, $food!"; } } ملف Ruminant.php: class Ruminant extends Animal { public function eats($food) { if ('grass' === $food) { parent::eats($food); } else { echo "Yuck, $food!"; } } } ملف Cow.php: class Cow extends Ruminant { } ملف pasture.php: require 'autoload.php'; $animal = new Cow; $animal->eats('grass'); يمكننا الوصول إلى أي صنف يتبع اصطلاحات التسمية الموجودة في المحمِّل التلقائي وذلك بفضل المحمل التلقائي العام. اصطلاحاتنا في هذا المثال بسيطة: يجب أن يكون للصنف المطلوب ملف في نفس المجلد يُسمّى بنفس اسم الصنف وتُضاف له اللاحقة ‎.php، يجب أن يكون اسم الصنف مطابقًا تمامًا لاسم الملف. بدون التحميل التلقائي، يجب أن نضيف الأصناف الأساسية يدويًا باستخدام require، إذا كنا نبني حديقة حيوانات كاملة سيكون لدينا الآلاف من تعليمات require التي يمكن استبدالها بسهولة بمحمِّل تلقائي واحد. في التحليل النهائي، يعدّ التحميل التلقائي في PHP آلية تساعدك على كتابة شيفرة بآلية أقل لذا يمكنك التركيز على حل مشاكل العمل، كل ماعليك فعله هو تحديد استراتيجية تربط اسم الصنف باسم الملف، يمكنك تنفيذ استراتيجية تحميل تلقائي خاصة بك كما هو الحال هنا، أو يمكنك استخدام أي من المعايير التي تتبناها PHP: ‏PSR-0 أو‏PSR-4 أو يمكنك استخدام المُنشئ لتعريف الاعتماديات وإدارتها بشكلٍ عام. تعريف صنف مضمَّن بدون الحاجة للتحميل ملف zoo.php: class Animal { public function eats($food) { echo "Yum, $food!"; } } $animal = new Animal(); $animal->eats('meat'); تعلم PHP ماهو الصنف Animal قبل تنفيذ التعليمة new Animal لأن PHP تقرأ الملفات المصدرية من الأعلى إلى الأسفل، لكن ماذا لو أردنا إنشاء كائنات من الصنف Animal في عدة أماكن ليس فقط في الملف المصدري الذي عُرِّف فيه، نحتاج للقيام بذلك إلى تحميل تعريف الصنف. تحميل يدوي للصنف باستخدام require ملف Animal.php: class Animal { public function eats($food) { echo "Yum, $food!"; } } ملف zoo.php: require 'Animal.php'; $animal = new Animal; $animal->eats('slop'); ملف aquarium.php: require 'Animal.php'; $animal = new Animal; $animal->eats('shrimp'); لدينا ثلاثة ملفات، يعرّف الملف الأول "Animal.php" الصنف، ويجمع كل المعلومات المتعلقة بالحيوان في مكان واحد بشكلٍ أنيق، ليس لهذا الملف آثار جانبية، هذه نسخة قابلة للتحكم ويمكن إعادة استخدامها بسهولة. يستخدم الملفان الآخران هذا الملف بتضمينه يدويًا، وبما أنّ PHP تقرأ الملف المصدري من الأعلى إلى الأسفل فإنّ تعليمة require ستجد الملف "Animal.php" وتجعل تعريف الصنف Animal متوفرًا قبل استدعاء new Animal. تخيل الآن أنّه لديك عشرات أو مئات الحالات التي تريد فيها إنشاء كائنات جديدة من الصنف Animal قد يتطلب ذلك الكثير من تعليمات require المملة. التحميل التلقائي بديلًا لتحميل تعريف الصنف يدويًا ملف autoload.php: spl_autoload_register(function ($class) { require_once "$class.php"; }); ملف Animal.php: class Animal { public function eats($food) { echo "Yum, $food!"; } } ملف zoo.php: require 'autoload.php'; $animal = new Animal; $animal->eats('slop'); ملف aquarium.php: require 'autoload.php'; $animal = new Animal; $animal->eats('shrimp'); وازن هذا المثال مع الأمثلة الأخرى، ولاحظ كيف استبدلنا التعليمة require "Animal.php‎"‎ بالتعليمة require "autoload.php"‎، مازلنا نضمن الملف الخارجي في وقت التنفيذ لكن بدلًا من تضمين تعريف صنف معين نضمّن منطق يمكن أن يحتوي على أي صنف وهذا يسهّل عملية التطوير،إذ نكتب تعليمة require واحدة لكل الأصناف بدلًا من كتابتها لكل صنف على حدة. يحدث السحر باستخدام spl_autoload_register، إذ تأخذ هذه الدالة مغلِّف وتضيفه إلى رتل من المغلِّفات، عندما تصادف PHP صنفًا ليس له تعريف فإنها تعطي اسم الصنف إلى كل مغلِّف في الرتل، إذا وِجد الصنف بعد استدعاء مغلِّف ما فإنّ PHP تعود إلى عملها السابق، وإذا لم يوجد الصنف بعد تجربة كامل الرتل تتعطل PHP وتطلق الخطأ "Class 'Whatever' not found.‎" التحميل التلقائي مع المُنشِئ يولِّد المُنشئ الملف vendor/autoload.php، يمكنك تضمين هذا الملف ببساطة وستحصل على التحميل التلقائي مجانًا. require __DIR__ . '/vendor/autoload.php'; وهذا يجعل العمل مع اعتماديات من طرف ثالث (third-party dependencies) سهل جدًا، ويمكنك أن تضيف أيضًا شيفرتك الخاصة إلى المحمِّل التلقائي بإضافة قسم تحميل تلقائي إلى composer.json. { "autoload": { "psr-4": {"YourApplicationNamespace\\": "src/"} } } تحدد في هذا القسم رابط التحميل التلقائي، يربط هذا المثال PSR-4 فضاء اسم إلى مجلد، يبقى المجلد ‎/src في المجلد الجذر لمشاريعك في نفس المستوى الموجود فيه المجلد ‎/vendor، يمكن أن يكون لديك اسم الملف src/Foo.php مثلًا والذي يحتوي على الصنف YourApplicationNamespace\Foo. ملاحظة: بعد إضافة مداخل جديدة إلى قسم التحميل التلقائي يجب إعادة تنفيذ الأمر dump-autoload لإعادة توليد وتحديث الملف vendor/autoload.php بالمعلومات الجديدة. يدعم المُنشئ التحميل التلقائي للمعيار PSR-0 وclassmap وfiles بالإضافة إلى PSR-4، يمكنك الاطلاع على مرجع التحميل التلقائي لمزيد من المعلومات. عند تضمين الملف vendor/autoload.php ستُرجع نسخة من المحمِّل التلقائي للمُنشئ، يمكنك تخزين القيمة المُرجعة من استدعاء التضمين في متغير وإضافة المزيد من فضاءات الأسماء، يمكن أن يكون هذا مفيدًا في التحميل التلقائي للأصناف في مجموعة الاختبار، مثال: $loader = require __DIR__ . '/vendor/autoload.php'; $loader->add('Application\\Test\\', __DIR__); إنشاء ملفات PDF في PHP مكتبة PDFlib تتطلب الشيفرة التالية استخدام مكتبة PDFlib لتعمل بشكلٍ صحيح. <?php // تهيئة كائن جديد $pdf = pdf_new(); // ‫إنشاء ملف pdf فارغ جديد pdf_begin_document($pdf);? // ضبط معلومات الملف pdf_set_info($pdf, "Author", "John Doe"); pdf_set_info($pdf, "Title", "HelloWorld"); // تحديد طول وعرض الصفحة pdf_begin_page($pdf, (72 * 8.5), (72 * 11)); // تحميل خط $font = pdf_findfont($pdf, "Times-Roman", "host", 0) // ضبط الخط pdf_setfont($pdf, $font, 48); // تعيين موضع النص pdf_set_text_pos($pdf, 50, 700); // طباعة النص إلى الموضع المحدد pdf_show($pdf, "Hello_World!"); // نهاية الصفحة pdf_end_page($pdf); // إغلاق الكائن pdf_end_document($pdf); // استعادة المحتويات من المخزن المؤقت $document = pdf_get_buffer($pdf); // ‫إيجاد طول ملف PDF وتعيين اسم للملف $length = strlen($document); $filename = "HelloWorld.pdf"; header("Content-Type:application/pdf"); header("Content-Length:" . $length); header("Content-Disposition:inline; filename=" . $filename); // إرسال الملف إلى المتصفح echo($document); // مسح الذاكرة unset($document); pdf_delete($pdf); ?> مكتبة YAML تثبيت الإضافة YAML لا تأتي إضافة YAML مع تثبيت PHP القياسي، بل يجب تثبيتها كإضافة PECL، ويمكن القيام بذلك في لينوكس/يونكس ببساطة: pecl install yaml لاحظ أنّ الحزمة libyaml-dev يجب أن تكون مثبتة على النظام لأنّ حزمة PECL هي مجرد غلاف لاستدعاءات libYAML. يختلف التثبيت على ويندوز، إذ يمكنك تحميل DLL المصرَّف مسبقًا أو بناؤه من المصدر. استخدام YAML لتخزين إعدادات التطبيق توفر مكتبة YAML طريقةً لتخزين البيانات المهيكلة، يمكن أن تكون البيانات مجموعة بسيطة من الأزواج اسم-قيمة أو بيانات هرمية معقدة مع قيم أو قد تكون مصفوفات. بفرض لدينا ملف YAML التالي: database: driver: mysql host: database.mydomain.com port: 3306 db_name: sample_db user: myuser password: Passw0rd debug: true country: us بفرض أننا حفظناه كملف config.yaml، لقراءة هذا الملف باستخدام PHP نستخدم الشيفرة التالية: $config = yaml_parse_file('config.yaml'); print_r($config); سينتج الخرج التالي: Array ( [database] => Array ( [driver] => mysql [host] => database.mydomain.com [port] => 3306 [db_name] => sample_db [user] => myuser [password] => Passw0rd ) [debug] => 1 [country] => us ) يمكن الآن استخدام معاملات الإعدادات ببساطة باستخدام عناصر المصفوفة: $dbConfig = $config['database']; $connectString = $dbConfig['driver'] . ":host={$dbConfig['host']}" . ":port={$dbConfig['port']}" . ":dbname={$dbConfig['db_name']}" . ":user={$dbConfig['user']}" . ":password={$dbConfig['password']}"; $dbConnection = new \PDO($connectString, $dbConfig['user'], $dbConfig['password']); ترجمة -وبتصرف- للفصول [ Autoloading Primer - Create PDF files in PHP - YAML in PHP‎] من كتاب PHP Notes for Professionals book اقرأ أيضًا المقال السابق: التخزين المؤقت (Cache) ومقابس الويب (Webscockets) في PHP
    1 نقطة
  3. يبدو أنك تخطأ في رفع الملف إلى مساره الصحيح عن طريق FTP.
    1 نقطة
  4. ظبط اخي بعد ما ضفت امر exit الله يسلمك شكرا لك
    1 نقطة
  5. مرحبا اخي قمت بعمل الكود بشكل التالي @override void initState() { // TODO: implement initState super.initState(); WidgetsBinding.instance.addPostFrameCallback((_) { _myPreferences.init().then((value) { setState(() { _myPreferences = value; gatNameCUNTRY=_myPreferences.NameCuntry; }); }); }); print('testgetname ${gatNameCUNTRY.toString()}'); ولا تزال النتيجة null هل يوجد حل مختلف؟
    1 نقطة
  6. الحالة الثانية يتم الطباعة بشكل صحيح لأن الطباعة تمت داخل دالة setState , ثم إذا أردت تشغيل الدالة قبل عمل build للواجهة يمكنك استخدام WidgetsBinding بالشكل التالي void initState() { super.initState(); WidgetsBinding.instance .addPostFrameCallback((_) => mYFucntion(context)); } أو استخدام SchedulerBinding بالشكل التالي import 'package:flutter/scheduler.dart'; SchedulerBinding.instance.addPostFrameCallback((_) => myFunction(context));
    1 نقطة
  7. هل ممكن ترفق ملفات مشروعك كاملاً؟
    1 نقطة
  8. للحصول على طريقة إستخدام اي دالة في لغة جافا ومعرفة الباراميترز التي تستقبلها والقيم التي ترجعها و وصف هذه الدالة يمكنك إستخدام الcode assisstance الخاص بالIDE حيث ان اغلب الIDEs المستخدمة لكتابة اكواد جافا تحتوي عليه ويمكنك إستخدامه من خلال الضغط على : ctrl+space وستظهر امامك نتائج مشابهة لما في الصورة الاتيه : والتي توضح جميع الإحتمالات الممكنة لهذا السخص الذي يريد ان يقوم بإنشاء متغير كما ترى. المثال الثاني يوضح لك ايضاً كيف تستخدم المساعد الخاص بالكود في التعرف على الكلاسات حيث يقوم بعرض البيانات الخاصة بالكلاس و توضيح الدوال التي يحتويها سواء كان الكلاس جاهزاً من لغة جافا او من إنشائك : اما المثال الثالث فهو شبيه بما تسأل عنه حيث بمجرد كتابة بداية اسم الدالة يقوم بعرض جميع الإحتمالات الممكنة و القيم التي ترجعها و التي تستقبلها حاول ان تستخدم الcode assistance دائماً حتى تكون أسرع في كتابة الكود وتتعرف على مجموعة كبيرة من الدوال تساعدك في انجاز مهامك.
    1 نقطة
  9. يوجد الكثير من المصادر الممتازة و المجانية على شبكة الإنترنت التي من خلالها يمكنك تعلم البرمجة خطوة بخطوة، لكن قبل البدأ في التعلم عليك إلقاء نظرة على المجالات المُتاحة و سوق العمل و تختار المجال المُناسب لك و الذي يتوافق مع سوق العمل المُستهدف من طرفك. كبداية يُمكنك الإطلاع على هذا المقال المُقدم من أكاديمية حسوب الذي سيكون لك كخطوة أولية للتعرف على البرمجة و مجالاتها: بعد إختيار المجال المناسب لك يُمكنك البدأ في تعلم التقنيات اللازمة لإحتراف ذلك المجال و تطوير مُستواك فيه.
    1 نقطة
  10. وعليكم السلام ورحمة الله تعالى، مجال البرمجة محال جدًا واسع ويجب في البداية تحديد هدفك من هذا المجال، لماذا تريد أن تختص بهذا المجال. دراسة هندسة البرمجيات في الوقت الحالي هي من أفضل الهندسات على المستوى العالمي وعليها زيادة طلب مستمر من قبل الطلاب ومن قبل شركات البرمجة. سوف تتعلمين الكثير من لغات البرمجة في الجامعة والكثير من المواد الغير مهمة بالنسبة لك، لهذا قبل دخولك هذا المجال يجب عليك تحديد هدفك من هذا المجال. هل تريدي أن تصبحي مبرمجة تطبيقات موبايل وصفحات ويب، إن كان كذلك فعليك دراسة لغات HTML و CSS و JavaScript والتي تستخدم لتطوير الواجهات الأمامية التي تشاهديها الآن أمامك في الصفحة، ومن ثم يمكنك تطوير مهارتك لدراسة تطوير الواجهات الخلفية من خلال PHP أو Ruby أو Node.js أو الكثير من اللغات وأطر العمل التي تستخدم لبرمجة الواجهات الخلفية، والتي تضمن جداول قواعد البيانات ومعلومات المستخدمين للموقع. أما بالنسبة لتطبيقات الموبايلات فيمكنك دراسة لغات عدة أسهلها Fluter والتي توفر لك بناء تطبيقات جيدة يمكن استخدامها على IOS و Android. أما إن كنت ترغبين في دراسة هندسة البرمجيات لمجالات ضخمة كجمع المعلومات الكبيرة Big data وتعليم الآلة وغيرها من المجالات الواسعة فإنت بحاجة إلى لغات أكثر قوة مثل Python و ++C. لهذا كمبتدئة أنصحك في تحديد هدفك من دراسة هندسة البرمجية ومن ثم السعي ورأه. كما أنك لايجب عليك فقط الاعتماد على مقررات الجامعة. حيث أن معظم الجامعات تستخدم غالبًا مناهج قديمة لم يعد معتمد عليها في وقتنا الحالي. لذلك عليك دائما تطوير نفسك من خلال متابعة دورات برمجية في مجالك وقرأة كتب عن المجال الذي ترغبين بالتخصص به. أنصحك من الآن بالقراءة كثيرًا عن مجال البرمجة وماهي البرمجة وذلك لكي تستطيع تحديد هدفك من هذا التخصص. وكبداية أنصحك بقراءة هذا المقال من الرابط هنا. أما عن مواصفات الجهاز التي سوف تحتاجينها لدراسة هذا المجال، فلست بحاجة لمواصفات عالية جدًا، جهاز متوسط المواصفات يكفيكي لدراسة هذا المجال. ذاكرة ٨ جيجا، هارد ssd و معالج core i5 كافي لكتابة تطبيقات بشكل مريح. أتمنى لك التوفيق.
    1 نقطة
  11. مقالك حفزني جدا لدراسة البرمجة. بدأت بلغة بايثون و حققت في مدة عشرة أيام نتيجة طيبة لم أكن أتوقعها من قبل غير أن تعلم البرمجة تستهلك وقتا كبيرا قد تصل لسبع أو ثماني أو تسع ساعات ساعات أحيانا مع احتساب الاستراحات القصيرة طبعا والوجبات و الصلوات في وقت التعلم. فالبرمجة يلزمها التفرغ الكامل لاحترافها. ما يلزم المبتدئ هو التفكير المنطقي و التأمل في كل كود تتم كتابته أثناء التعلم و إعادة كتابته مرارا و التلاعب به و إدخال بعض الأكواد الصغيرة لترسيخها كي لا تنسى. كما يجب تكرار ما تعلمته يوم أمس و مراجعته و كتابة أكواد مشابهة له ثم البدأ في الدرس الجديد كما لا ينبغي الاستهانة بأي خطوة فيجب فهمها حتى لا تسبب مشاكل في المستقبل , فالغرض الإتقان و ليس الاطلاع فقط. فنصيحتي لك أيها مقبل على تعلم البرمجة أن تبدأ يومك بقراءة وردك من القرءان الكريم و صلاة ركعتين و دعاء الله الفهم و الصبر و العزيمة فإذا استعصى عليك أمر في التعلم حاول أن تحلها (هو أمر يسبب النرفزة )فإن لم تنجح في ذلك إياك أن تفشل و تترك الأمر . إذهب فتوضأ و ادع الله و تنفس هواء نقيا ثم ارجع فسيفتح عليك فيه فأنا أتكلم عن تجربة يا إخواني
    1 نقطة
×
×
  • أضف...