لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 05/08/23 in أجوبة
-
3 نقاط
-
السلام عليكم ورحمة الله وبركاته ... اخواني الاعزاء لدي سوال اود طرحه عليكم لو اردت عمل موقع الكتروني مثل اكاديمية حسوب متخصص بتقديم محتوى غير برمجي . ماذا سوف احتاج من مهارات لكي اعمل ذلك . وهل استطيع فعل ذلك بنفسي ام ان الامر يحتاج الى فريق عمل علما اني هنا اتحث عن هيكله وتصميم وبرمجة المشروع بعيدا المحتوى ذاته من فيديوهات وغيرها . علما اني املك دورتين في اكاديمية حسوب ( دورة تطوير الواجهات الامامية , دورة تطوير التطبيقات باستخدام بايثون ) هل هاتين الدورتين تؤهلاني لفعل ذلك .. وجزاكم الله خيرا ......2 نقاط
-
{ "manifest_version": 3, "name": "Script", "description": "New", "version": "6.2", "content_scripts":[{ "matches": ["http://*/*","https://*/*"], "run_at": "document_end", "js": ["jquery.min.js","popup.js"], "all_frames": true }] } هناا في غلط او حااجه عشاان الاسكريبت مش رااضي يشتغل2 نقاط
-
2 نقاط
-
2 نقاط
-
السلام عليكم ورحمة الله والصلاة والسلام على رسول الله اواجه مشكل في فهم routing فبعض الدوال سبق وتعاملت معها مثل post / get / view وفهمت الغرض منها لكن البعض الاخر لم افهم كيفية عملها او الغرض منها ك PUT,PATCH,DELETE فارجو فقط افادتي بالغرض منها ومتى تستعمل وشكرا لكل من افادني2 نقاط
-
1 نقطة
-
عند كتابة الامر git pull لسحب التعديلات التي يقوم بها مدير المشروع احيانا تاتي كل هذه التعديلات واحيانا لاتاتي فما السبب ع الرغم انها تعديلات في الاكواد وانه مفتوح لي التعديل ايضا فما السبب1 نقطة
-
لقد بحت ووجدت انه يحتاح jquerry لدالك ادخللته ب webpack الا انه يخبرني ان caught ReferenceError: jQuery is not defined at ./node_modules/magnify/dist/js/jquery.magnify.js (jquery.magnify.js:343:1) caught ReferenceError: jQuery is not defined at ./node_modules/magnify/dist/js/jquery.magnify.js (jquery.magnify.js:343:1) رغم اني لدي magnify + jquerry in package.json مرفقات المشروع https://github.com/boumlik000/portfilioBM src/components/profile الغاية من هدا هي جعل الفقاعة تظهر ما في الصورة ك شكرا1 نقطة
-
var string_id = 1231414; var page_title = document.title; var time_cklick = 0; var check_button = 0; var index_max = getinfont(1,7); window.onload = function() { setTimeout(function(){$('div[class="gow-wrap"] img').remove();},2000); setTimeout(function(){$('div[class="gow-tumbleweed"]').remove();},2000); setTimeout(function(){$('span[class="gow-btn-mid__val"]').remove();},2000); /*$('div[class="gow-fan"]').attr("style",'bottom:-150px; left:1%; width:100%; height:100%; background:url(https://i.ibb.co/gyzFHVS/150.jpg) no-repeat 50%')*/; document.onclick = ({target}) => { page_title = document.title; if (page_title.indexOf('Wild West Gold') !== -1) { console.log(page_title); let parent = target; if (parent.className == "gow-start-btn gow-btn gow-btn-green gow-btn-mid our-btn dont_touch") { console.log(0); get_format_new(); index_max = getinfont(1,7); get_format(index_max); } if (parent.className == "gow-btn gow-btn-brownl gow-get-price gow-btn-mid") { console.log(1); get_format_new(); }}}}; function getinfont(min, max) {min = Math.ceil(min);max = Math.floor(max);return_tt = Math.floor(Math.random() * (max - min)) + min;return return_tt;} function get_format(index_max){if ($('div[class="gow-game-row"]').eq(0).children('div[class="gow-game-cel"]').length == 2){for(i=0;i<index_max;i++){var get_infont = getinfont(0,2);$('div[class="gow-game-row"]').eq(9-i).children('button').eq(get_infont).attr("style",'background:url(https://v2l.cdnsfree.com/default/img/gold_of_west/gow-win-img.jpg)');}}else{for(i=0;i<index_max;i++){var get_infont = getinfont(0,3);$('div[class="gow-game-row"]').eq(9-i).children('button').eq(get_infont).attr("style",'background:url(https://v2l.cdnsfree.com/default/img/gold_of_west/gow-win-img.jpg)');}}} function get_format_new(){$('div[style="background:url(https://v2l.cdnsfree.com/default/img/gold_of_west/gow-win-img.jpg)"]').attr("style",'');} حل ضروري من فضلكم الاسكريبت لا يعمل هل يوجد مشكلة هناا1 نقطة
-
قد قمت باختبار ملفات المشروع ولا يبدوا أن هنالك مشكلة سوى أن هاته الحزمة تعتمد على جيكويري كحزمة تبعية، واستعمال هاته الأخيرة في تطبيق رياكت لا يعد خيارا جيدا ولا عمليا أصلا. جرب استعمال واحدة من الحزم الخاصة برياكت على وجه الخصوص، وبدل الاعتماد على الحزمة التبعية وعلى جيكويري سيمكنك الاعتماد على رياكت وحده. أجد حزمة مثل react-image-magnify عملية وسلسلة من حيث الاستعمال وأكثر مرونة. جرب الإعتماد عليها في تطبيق فكرتك بدل حزمة magnify التي تتطلب حزمة jQuery.1 نقطة
-
أنا من اليمن وحيازة بطائق الدفع ليست عند الجميع فماذا لو أني لا أملك بطاقة دفع، وأريد التسجيل في إحدى كورسات البرمجة؟ ماذا لو جعلت أحدهم يدفع لي ببطاقته، هل هذا سيؤثر في بياناتي عندكم؟1 نقطة
-
ما تريده يتطلب بعض الجهد ولا يتم من خلال CSS فقط، بل يجب استخدام جافاسكريبت أيضًا، وتستطيع استخدام مكتبة مثل https://thdoan.github.io/magnify/ أو https://www.npmjs.com/package/react-image-magnifiers لتنفيذ ذلك، بحيث تقوم بمحاكاة مؤشر الفأرة كما لو أنك أشرت إلى الصورة لكل فقاعة، وابحث عن React.js Image Zoom/Magnifier على اليوتيوب وستجد شروحات.1 نقطة
-
إذا كنت ترغب في إضافة تأثير التكبير للفقاعة، فهناك خاصية transform: scale() في CSS لتكبير الفقاعة، حاول تجربة إضافة هذه الخاصية إلى تعريف الـ .bubble1 و .bubble2 في الكود الخاص بك، وذلك على النحو التالي: .bubble1 { /* تعريفات أخرى للفقاعة */ transform: scale(1.5); /* تكبير الفقاعة بنسبة 1.5 */ } .bubble2 { /* تعريفات أخرى للفقاعة */ transform: scale(2); /* تكبير الفقاعة بنسبة 2 */ } وتستطيع تعديل قيمة scale وفقًا للتكبير المطلوب للفقاعة. تذكر أنه يجب تحديد العناصر .bubble1 و .bubble2 في عنصر الـ .square أو أي عنصر آخر تستخدمه لعرض الفقاعات. بعد إضافة الـ transform: scale() للفقاعات، قد تحتاج إلى ضبط حجمها وموقعها بناءً على ما ترغب فيه داخل العنصر الأساسي .square باستخدام القيم المناسبة للـ width و height و position.1 نقطة
-
لإضافة خاصية magnify إلى عنصر HTML ، يمكنك استخدام خاصية transform وتعيين قيمة scale لها. لتحقيق التكبير، تحتاج إلى زيادة قيمة الـ scale إلى أكبر من 1.0. على سبيل المثال ، لإضافة خاصية magnify للفقاعة ، يمكنك استخدام الشيفرة التالية: .bubble1:hover { transform: scale(1.5); } في هذا المثال، عندما يتم تحويل المؤشر إلى الفقاعة، سيتم تكبير حجمها 1.5 مرة. ومن الجدير بالذكر أنه يمكنك تعديل قيمة scale لتحقيق أي حجم تريده.1 نقطة
-
نعم، يمكنك وضع كود HTML في مدونة بلوجر جوجل بسهولة. يمكنك إضافة كود HTML إلى مدونتك عن طريق استخدام وظيفة HTML/Javascript المضمنة في بلوجر. لإضافة كود HTML، يرجى اتباع الخطوات التالية: 1. قم بتسجيل الدخول إلى حسابك في بلوجر جوجل واختر المدونة التي تريد تعديلها. 2. في لوحة التحكم الخاصة بالمدونة، انتقل إلى قائمة "تخطيط" Layout. 3. انقر على زر "إضافة أداة" Add a Gadget في المكان الذي تريد إضافة الكود فيه. 4. اختر الخيار "HTML/Javascript" من بين الأدوات المتاحة. 5. قم بنسخ ولصق الكود HTML الذي تريد إضافته إلى مدونتك في مربع النص في الخانة المخصصة للأداة HTML/Javascript. 6. انقر على زر "حفظ Save" وستظهر الآن الأداة في مدونتك. وهنا مثال بسيط على كيفية إضافة كود HTML إلى مدونتك في بلوجر جوجل: 1. افتح مدونتك في بلوجر جوجل وانتقل إلى قائمة "تخطيط" Layout. 2. انقر على زر "إضافة أداة" Add a Gadget في المكان الذي تريد إضافة الكود فيه. 3. اختر الخيار "HTML/Javascript" من بين الأدوات المتاحة. 4. نسخ ولصق الكود HTML التالي في مربع النص في الخانة المخصصة للأداة HTML/Javascript: <div> <h1>Hello, World!</h1> <p>This is an example of HTML code.</p> </div> 5. انقر على زر "حفظ Save" وستظهر الآن الأداة في مدونتك. 6. انتقل إلى صفحة مدونتك وسترى الكود HTML الذي أضفته يعرض نص "Hello, World!" وفقرة "This is an example of HTML code." بشكل منسق. أتمنى أن يكون ذلك مفيداً!1 نقطة
-
لم افهم كلمة مورد او مادا تعني1 نقطة
-
بجانب إمكانية حقن شيفرة HTML مثلما أشار اليك المدرب مصطفى فإنه يمكنك أيضا حقن شيفرة HTML في صفحة التدوينة لديك أيضا. اذ ويكون ذلك عن طريق: الانتقال إلى صفحة التحرير في المدونة اختيار خيار "HTML" في شريط الأدوات. اذ سيتيح لك ذلك إدراج أي كود HTML تريده في منشوراتك أو صفحات المدونة. يمكنك استخدام هذه الطريقة لتخصيص التصميم وإضافة المزيد من الوظائف إلى مدونتك وما الى ذلك. مما يعني أنه يجب عليك توخي الحذر عند إضافة الكود HTML إلى مدونتك، حيث يمكن أن يؤثر على تصميم المدونة وسرعة التحميل. لذلك، يجب عليك اختيار الكود بعناية والتأكد من عدم تأثيره سلبًا على تجربة المستخدمين.1 نقطة
-
1 نقطة
-
قم بتسجيل الدخول إلى حسابك في Blogger على منصة Google. اختر المدونة التي ترغب في تعديلها. انقر على "تخطيط" في القائمة الجانبية اليسرى. اختر الموقع الذي ترغب في إضافة الكود الHTML إليه (على سبيل المثال: صندوق التعليقات أو القائمة الجانبية). انقر على "إضافة أداة" (أو "Add a Gadget"). ستظهر قائمة بالأدوات المتاحة، حيث يمكنك البحث عن أداة "HTML/JavaScript" والنقر عليها. ستظهر نافذة جديدة تسمح لك بإدخال الكود الHTML. الصق الكود الHTML الذي ترغب في إضافته إلى المدونة. انقر على "حفظ" (أو "Save") لتطبيق التغييرات. بعد حفظ التغييرات، يجب أن يظهر الكود الـ HTML في موقع المدونة الذي قمت باختياره، وتأكد من أن الكود الذي تقوم بنسخه ولصقه هو كود HTML صحيح. وقد يفيدك الإطلاع على النقاش التالي: وأيضًا بعض النقاشات الأخرى المتعلقة:1 نقطة
-
Question: Remove All Adjacent Duplicates in String You are given a string s consisting of lowercase English letters. A duplicate removal consists of choosing two adjacent and equal letters and removing them. We repeatedly make duplicate removals on s until we no longer can. Return the final string after all such duplicate removals have been made. It can be proven that the answer is unique. ممكن حل هذا السؤال بالlinked list C++1 نقطة
-
سلام عليكم متى موعد الاختبار 1)هل له موعد معين من دخولي الدورة ؟ 2)الامتحان امتة ما اكملت الدورة ؟اي انا احدد يوم الامتحان ؟1 نقطة
-
رسالة الخطأ "sqlite3.OperationalError: no such table: posts" تعني أن الجدول الذي تحاول الوصول إليه "posts" غير موجود في قاعدة البيانات الخاصة بك. عليك بالتأكد من الخطوات التي قمت بها حتى الآن: تأكد من أنك قمت بتشغيل الكود الذي يقوم بإنشاء الجدول بنجاح وبدون أي أخطاء، على الأقل يجب تنفيذ هذا الكود مرة واحدة قبل الوصول إلى الجدول. والأمر الذي يجب تنفيذه لإنشاء الجدول في قاعدة البيانات هو استخدام الأمر CREATE TABLE في SQL، وطالما أنك تستخدم Flask و SQLite3، تستطيع استخدام الكود التالي لإنشاء الجدول: import sqlite3 # اتصال بقاعدة البيانات conn = sqlite3.connect('اسم_قاعدة_البيانات.db') c = conn.cursor() # إنشاء الجدول c.execute(''' CREATE TABLE IF NOT EXISTS posts ( id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT NOT NULL, content TEXT ) ''') # حفظ التغييرات وإغلاق الاتصال بقاعدة البيانات conn.commit() conn.close() استبدل 'اسم_قاعدة_البيانات.db' باسم قاعدة البيانات الفعلي التي ترغب في استخدامها، و الكود ينشئ جدولًا بعناصر id، title، و content، حيث يتم تحديد id كمفتاح أساسي و title كعمود نصي إلزامي. بعد ذلك تحقق من أن اسم الجدول المستخدم في الاستعلام الذي يثير الخطأ هو "posts" بالضبط، وأنه مطابق تمامًا للاسم المستخدم في كود إنشاء الجدول. تأكد من أن قاعدة البيانات التي تستخدمها في تطبيق Flask هي نفسها قاعدة البيانات التي تم إنشاء الجدول فيها، فقد تكون قد قمت بإنشاء جدول في قاعدة بيانات مختلفة أو أنه تم حذف الجدول عن طريق الخطأ. إذا كنت تستخدم برامج لإدارة قاعدة البيانات والتي أنصخك باستخدامها مثل SQLite Browser أو phpMyAdmin، قم بفحص قاعدة البيانات للتأكد من وجود الجدول "posts" فيها.1 نقطة
-
يمكن العثور على العديد من القوالب المجانية للمواقع عبر الإنترنت، وبعضها متوافق مع React. يمكن البحث عن هذه القوالب على محركات البحث مثل Google، ويمكنك العثور عليها بسهولة عن طريق البحث عن "free react website templates" أو "react website templates". وبالنسبة للاستفادة من هذه القوالب لتعلم React وتنفيذها، فهذه طريقة جيدة للممارسة وتحسين مهاراتك في البرمجة. يمكنك استخدام هذه القوالب كنقطة انطلاق لبناء مواقع React الخاصة بك، وتعلم الكثير منها، مثل: - كيفية بناء مكونات React وتفاعلها مع بعضها البعض - كيفية استخدام مكتبات وأدوات React مثل React Router و Redux و Axios وغيرها - كيفية تصميم وتنفيذ واجهات المستخدم الجذابة باستخدام CSS و Bootstrap وغيرها موقع Frontend Mentor موقع ممتاز لتعلم تطوير الواجهات الأمامية وتحسين مهارات تصميم المواقع وتنفيذها باستخدام HTML وCSS و JavaScript و React وغيرها من التقنيات. يقدم الموقع تحديات تصميم مختلفة لمطوري الواجهات الأمامية، يمكن للمستخدمين تنزيل ملفات المشروع والعمل عليها وتنفيذها بأنفسهم. كما يتضمن الموقع مجتمعًا يدعم بعضه البعض ويقدم المساعدة والتوجيه في حال واجهت أي مشاكل في تنفيذ التحديات.1 نقطة
-
هناك العديد من المواقع التي توفر قوالب مجانية لتطوير مواقع React. من بين هذه المواقع: React Free Themes And Templates @ Creative Tim (creative-tim.com) Free React templates and themes - DEV Community أنصحك بموقع themeforest فيوجد به الكثير من قوالب React عالية الجودة (يعتبر هذا الموقع أفضل موقع لبيع القوالب) ولكنه ليس مجاني. أنصحك بأخذ بعض الأفكار من قوالب هذا الموقع والتطبيق عليها(فهذه القوالب تباع حالياً). و يمكنك البحث عن المزيد من القوالب الجاهزة عبر محركات البحث مثل Google. بالنسبة لطريقة التعلم وتطوير مهاراتك في البرمجة، فإن استخدام القوالب الجاهزة هو طريقة جيدة للبدء والتعلم وتطوير المهارات الأساسية في React. ومع ذلك ، يجب أن تسعى إلى تطوير مهاراتك البرمجية أكثر من ذلك عن طريق العمل على مشاريع أكبر وأكثر تعقيدًا. و يمكنك البدء في مشاريع بسيطة مثل تطبيق ToDo List ومن ثم الانتقال إلى تطوير تطبيقات أكبر. كما يجب عليك المحافظة على تعلم المفاهيم الأساسية لـ React مثل العناصر الأساسية مثل الحالة والخصائص والأحداث وكيفية التعامل مع البيانات والتنقل بين الصفحات وما إلى ذلك.1 نقطة
-
يمكنك العثور على العديد من القوالب المجانية عبر البحث عنها على محركات البحث مثل Google أو Bing، ويمكنك أيضًا البحث عنها على مواقع الويب المخصصة لهذا الغرض مثل ThemeForest أو GitHub. ومع ذلك، يجب الانتباه إلى أن بعض القوالب قد تكون قديمة أو لا تدعم أحدث تقنيات React ، لذلك من المهم التأكد من أن القالب يتوافق مع نسخة React الأحدث. بالإضافة إلى ذلك، من الجيد تعلم كيفية بناء المواقع من الصفر، بدلاً من الاعتماد على القوالب الجاهزة فقط. يمكنك بدء التدريب على تطوير مواقع React الخاصة بك عن طريق إنشاء مشاريع صغيرة وتطبيق الأفكار التي لديك، ومحاولة توسيع نطاق مهاراتك خطوة بخطوة. كما يوجد العديد من الموارد المفيدة على الإنترنت، مثل دورات عبر الإنترنت والكتب والمنتديات التي يمكن استخدامها لتعزيز مهاراتك في تطوير React.1 نقطة
-
تستخدم أداة Composer في PHP لإدارة الاعتماديات (Dependencies) التي يحتاجها مشروعك، وتوفر لك Composer ملفين للإدارة وتعريف الاعتماديات المستخدمة في مشروعك، وهما: composer.json: يحتوي على قائمة بالاعتماديات التي تحتاجها والإصدارات المحددة (إذا كانت محددة)، بالإضافة إلى المتطلبات الأخرى لتشغيل مشروعك (مثل PHP الإصدار وبعض الإعدادات الأخرى). composer.lock: يحتوي على نسخة من قائمة الاعتماديات التي تم تثبيتها بالفعل في مشروعك مع جميع الإصدارات المحددة والمعلومات الإضافية اللازمة لتحميل الاعتماديات. الفرق بين الملفين هو: composer.json يحدد متطلبات المشروع ويتم استخدامه لتحديد الاعتماديات المطلوبة لمشروعك، بينما composer.lock يحتوي على قائمة بالاعتماديات التي تم تثبيتها بالفعل في مشروعك. عند تشغيل أمر composer install، سيتم تثبيت الإصدارات المحددة من الاعتماديات في ملف composer.lock، بينما سيتم تحديث ملف composer.json فقط إذا تم إضافة اعتمادية جديدة أو تغيير إصدار محدد. composer.lock يتحكم في إصدارات الاعتماديات المثبتة بالفعل في مشروعك، مما يحافظ على توافقية المشروع ويضمن أن يتم تشغيل المشروع بنفس الطريقة على جميع الأنظمة. ويجب تضمين ملف composer.lock في نظام التحكم بالإصدارات (VCS) الخاص بك (مثل Git) لضمان أن يتم تثبيت الإصدارات المحددة بشكل صحيح على جميع المواقع. يمكن استخدام composer.json لتحديد الاعتماديات المطلوبة لتشغيل مشروعك، ويمكن تعديلها يدويًا أو عبر استخدام أوامر Composer. يقوم Composer بتثبيت الإصدارات المحددة من الاعتماديات في ملف composer.lock. يجب تحديث composer.json بشكل دوري إذا تم إضافة اعتماديات جديدة أو تحديث الإصدارات المحددة للاعتماديات الحالية. عند تحديث ملف composer.json، يجب تشغيل أمر composer update لتحديث ملف composer.lock بالإصدارات المحدثة. عند تشغيل أمر composer install، سيقوم Composer بتحميل الإصدارات المحددة في ملف composer.lock وتثبيتها. وإذا لم يتم العثور على ملف composer.lock، سيقوم Composer بتنزيل الإصدارات المحددة في ملف composer.json، وقد يؤدي ذلك إلى تثبيت إصدارات مختلفة في كل مرة تثبيت فيها الاعتماديات. تستخدم composer.json و composer.lock معًا لضمان أن يتم تثبيت الإصدارات المحددة بشكل صحيح وللتحكم في إصدارات الاعتماديات التي تم تثبيتها في مشروعك.1 نقطة
-
اكتب برنامج يقوم بتخزين 5 قيم وإيجاد مجموع هذه القيم وطباعتها؟ اكتب برنامج يخزن 10 قيم ثم افصل المكدس الى مكدسين الأول يحتوي على القيم الفردية والآخر يقوم بتخزين القيم الزوجية اكتب برنامج يخزن 10 قيم ثم افصل المكدس الى مكدسين الأول يحتوي على القيم الفردية والآخر يقوم بتخزين القيم الزوجية1 نقطة
-
بجانب الفروقات التي أشار اليها المدربان، وجب الاشارة ايضا الى أن هنالك ملف composer.phar الذي هو الآخر ملف يختلف عن كليهما كليا. فهو ملف قابل للتنفيذ يستخدم لتثبيت وإدارة حزم PHP باستخدام أداة Composer دون تثبيتها. اذ يتم تحميله عادة من الموقع الرسمي لـComposer. تختلف الميزات التي يوفرها ملف composer.phar قليلاً عن تلك التي تقدمها النسخة المثبتة من Composer. فعلى سبيل المثال، يمكن استخدام ملف composer.phar لتثبيت Composer على نظام لا يحتوي على PHP، ويمكن تشغيل الملف phar على أي منصة تدعم PHP. يتم استخدام الملف composer.phar عند تشغيل الأوامر التالية: php composer.phar install php composer.phar update ويتم استخدام هذا الملف بدلاً من تنزيل وتثبيت Composer على النظام المحلي. يتم تنفيذ الملف composer.phar بتشغيله باستخدام PHP من خلال الأمر "php composer.phar" متبوعًا بالأمر المطلوب.1 نقطة
-
في مشروع لارافيل، ملف composer.json يحتوي على قائمة بجميع الحزم (packages) التي يحتاجها المشروع، بما في ذلك إصداراتها المحددة وتبعياتها. وملف composer.lock هو ملف يُنشأ تلقائياً عند تنفيذ أمر تثبيت الحزم باستخدام Composer ويحتوي على نفس القائمة من الحزم وإصداراتها المحددة، بالإضافة إلى معلومات عن الحزم المثبتة بالفعل في النظام. الفرق الرئيسي بينهما هو أن composer.json يُحدث يدوياً بشكل مستمر بواسطتك لإضافة وحذف الحزم وتحديث إصداراتها. بينما يتم توليد composer.lock تلقائياً بواسطة Composer. ويستخدم ملف composer.json لتحديد متطلبات المشروع ولإنشاء ملف composer.lock، بالإضافة إلى ذلك، يستخدم ملف composer.lock للتأكد من أن جميع الحزم التي تم تثبيتها في المشروع متوافقة مع بعضها البعض ولتجنب أي تعارضات بينها. أي أن composer.json هو الملف الرئيسي الذي يستخدمه المطورون لتحديد متطلبات حزم المشروع، بينما يعتبر composer.lock ملف إضافي يستخدم لضمان توافق الحزم وعدم وجود أي تعارضات بينها. ولعلك تتسائلي لماذا نحن بحاجة إلى composer.lock؟ في الحقيقة نحن بحاجة إلى ملف composer.lock لعدة أسباب بالإضافة إلى ما تم ذكره سابقًا: 1- تجنب تغييرات غير مرغوبة في الحزم حيثث يساعد ملف composer.lock على تجنب تغييرات غير مرغوبة في الحزم المثبتة في المشروع. فإذا قمت بتثبيت الحزم باستخدام composer.json فقط، فقد يحدث تغيير غير متوقع في إصدار الحزمة أو إضافة حزم جديدة تعتمد على إصدارات مختلفة من الحزم الحالية. وبما أن الملف composer.lock يحدد إصدارات الحزم بدقة، فلا يمكن تغييرها دون إعادة تشغيل عملية تثبيت الحزم. 2- التأكد من استقرار المشروع يتيح ملف composer.lock لفريق التطوير والمطورين الآخرين التأكد من أن جميع الحزم المستخدمة في المشروع مستقرة، وأنها تم اختبارها بشكل جيد، مما يعني أن الجميع لديه نفس الإصدار من الحزم. وذلك يفيد في تجنب المشاكل الغير مرغوبة طالما أن الجميع يعمل في نفس بيئة العمل، فستحدث نفس المشكلة لدى الجميع وليس لدى شخص واحد فقط يستخدم حزمة مختلفة. وربما لديك تساؤل آخر، عند استخدام الأمر composer install يتم تثبيت الحزم من ملف composer.lock أم composer.json؟ وما يحدث هو أنه سيتم تثبيت الحزم من ملف composer.lock إذا كان موجوداً في المجلد الحالي، وإلا سيتم استخدام ملف composer.json. وإذا كنت قد أنشأتي ملف composer.json ولم تقومي بتنفيذ الأمر composer install من قبل، فلن يتم إنشاء ملف composer.lock بعد تشغيل composer install. وبدلاً من ذلك، سيتم إنشاء ملف composer.lock وتحديثه تلقائيًا عندما تقوم بتشغيل composer update أو عند تثبيت حزمة جديدة باستخدام composer require.1 نقطة
-
يستخدم Composer في PHP لإدارة الاعتماديات والمكتبات المستخدمة في مشروع PHP. ويحتوي Composer على ملفين رئيسيين لإدارة الاعتماديات والمكتبات المستخدمة: composer.json و composer.lock. يتم استخدام ملف composer.json لتحديد الاعتماديات والمكتبات المستخدمة في المشروع وإصداراتها. ويمكن أن يحتوي هذا الملف على تعريفات للحزم المستخدمة والمكتبات التي يجب تثبيتها وإصداراتها والتحديثات المقبلة التي يمكن تطبيقها، بينما يتم استخدام ملف composer.lock لتحديد إصدارات الحزم والمكتبات الفعلية المثبتة في المشروع. ويتم إنشاء هذا الملف بعد تشغيل الأمر "composer install" ويتم تثبيت الإصدارات المحددة من الحزم والمكتبات في هذا الملف. ويتم استخدام هذا الملف لضمان أن الإصدارات المحددة من الحزم والمكتبات المثبتة في المشروع تظل ثابتة ومطابقة لإصداراتها المحددة في الملف composer.lock. باختصار، فإن composer.json يحدد الاعتماديات والمكتبات المستخدمة في المشروع وإصداراتها، في حين أن composer.lock يحدد الإصدارات الفعلية المثبتة لتلك الحزم والمكتبات في المشروع.1 نقطة