بي أتش بي:هل أستخدم Pecl/Pear، أو أبني أنظمتي الخاصة؟

StackOverflow https://stackoverflow.com/questions/121525

  •  02-07-2019
  •  | 
  •  

سؤال

عند إنشاء بعض تطبيقات PHP الخاصة بي، يمكن ترميز الكثير من الوظائف باستخدام وحدات PEAR/PECL، ومع ذلك، فإن حقيقة أن بعض الأشخاص الذين يستخدمونها قد لا يكون لديهم إمكانية الوصول إلى تثبيت الأشياء، فإن ذلك يشكل لغزًا بالنسبة لي.

هل يجب أن أتخلى عن بعض المستخدمين لاستخدام PEAR/PECL للوظائف، حيث سيسمح لي ذلك بالحصول على نظام مشفر بشكل أسرع مما لو كتبت وظائفي الخاصة، ولكنه يعني أنه سيستبعد أشخاصًا معينين من استخدامه.

هل كانت مفيدة؟

المحلول

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

...ولكن من ناحية أخرى، فإن الأدوات الموجودة مسبقًا لا تؤدي دائمًا ما تحتاج إليه بالضبط، وفي بعض الأحيان يكون لها نفقات إضافية لا تفيدك بأي شيء.وهذا هو السبب في أن أدوات سطر أوامر Unix صغيرة جدًا وضيقة الأغراض؛لا أحد يحتاج حقًا إلى نسخة من 'ls' يمكنها فعل أي شيء إلى جانب ما يمكن لـ 'ls' فعله حاليًا.إن نسختك من أي مكتبة PEAR، بحكم كتابتها بواسطتك، ستفعل بالضبط ما تحتاج إلى القيام به.الأمر يتطلب بعض التفكير المتأني..

...ولكن من ناحية الإمساك، لا تقضي الكثير من الوقت في التفكير في الأمر.اقضِ خمس دقائق، واتخذ القرار، وابدأ بالبرمجة.حتى لو اتخذت القرار الخاطئ، فستكون على الأقل قد حصلت على المزيد من التدريب على البرمجة.:-)

نصائح أخرى

يمكنك توفير وقت التطوير من خلال التطوير باستخدام مكتبات الكمثرى، وتوفير المكتبات المجمعة في ما تقوم بتوزيعه (على الرغم من أنه سيتعين عليك التأكد من امتثالها لمتطلبات الترخيص)

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

اقتراحي هو البدء بافتراض وحدات PEAR/PECL، وإنجاز بقية التعليمات البرمجية.بعد ذلك، بمجرد أن تعمل معظم التعليمات البرمجية الخاصة بك بالطريقة التي تريدها، يمكنك تقييم العودة قطعة تلو الأخرى واستبدال التعليمات البرمجية الخارجية الخاصة بك.بالإضافة إلى ذلك، بحلول ذلك الوقت سيكون لديك فكرة أفضل عن تأثير استخدام تلك الأشياء على قاعدة المستخدمين الخاصة بك.

قم بترميزه في البداية باستخدام PEAR/PECL وإذا وجدت أشخاصًا يطلبون إصدارًا غير PEAR/PECL، فابدأ في ترميز البدائل الخاصة بك ثم لمثل هذا الإصدار.

سيكون التطوير الأولي أسرع بكثير مع هذا، وقد تجد أن لا أحد يهتم بطلب مكتبات الطرف الثالث بمجرد بدء إصدار التطبيقات.

استخدم PEAR ولكن اسمح بتضمين حزم PEAR داخل مشروعك.يمكن تنزيل جميع حزم PEAR بشكل منفصل من http://pear.php.net/ ويمكن وضعها في أي مكان.اعتمادًا على مشكلات الراحة والترخيص، يمكنك بعد ذلك حزم جميع ملفات PEAR المطلوبة مع مشروعك أو إخبار المستخدمين بكيفية تنزيلها و"تثبيتها".

ما أفعله في معظم الأوقات هو أنني لن أستخدم PEAR مطلقًا المثبت عالميًا على الخادم.يمكن أن تتغير الإصدارات وتؤثر على تطبيقك.بدلاً من ذلك لدي ملف تكوين (في حالتي XML) يسرد جميع الحزم المطلوبة وإصداراتها.يتصل المثبت بمستودع FTP الشخصي الخاص بي ويقوم بتنزيل كافة حزم PEAR وتثبيتها محليًا في $PROJECTBASE/lib/pear/ ..ويتم تشغيل PEAR محليًا وليس عالميًا.شيء قد ترغب في النظر فيه.

لا يمثل استخدام PEAR مشكلة، إذا لم يكن لدى المستخدمين حق الوصول الجذري إلى خادم الويب الخاص بهم، فيمكنهم ببساطة تنزيل ملفات PHP من pear.php.net وإضافتها إلى مسار التضمين الخاص بهم.يعد التعامل مع PECL أكثر صعوبة، نظرًا لعدم وجود طريقة غالبًا لتثبيت وحدات جديدة دون الوصول إلى الجذر.

عليك أن تنتبه لأن الكثير من الوحدات في الكمثرى ذات جودة منخفضة جدًا.

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

ومع ذلك، فإن pecl مختلف.تميل الإضافات إلى أن يتم فحصها واختبارها بشكل أفضل، وإلا فإنها ستؤدي إلى تعطل ملف php.

تكرار الكثير مما قيل بالفعل: http://www.codinghorror.com/blog/archives/001145.html

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top