مقارنة تفصيلية بين WordPress و October CMS

اسمي بافيل لوفتسيفيتش ، أنا الشريك المؤسس والمدير التنفيذي لشركة LOVATA web studio. واحدة من المنصات الرئيسية التي نطور عليها مشاريع لعملائنا هي CMS أكتوبر ، التي نعمل معها منذ ما يقرب من 6 سنوات.



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



من أجل استمرار هذه الموجة مع هذه الترجمة ، سأبدأ سلسلة من المقالات حول هذا CMS الجميل.




يبحث العديد من الأشخاص الآن عن بدائل لـ WordPress. في هذه المقالة ، سنقوم بمقارنتها مع نظام إدارة المحتوى لشهر أكتوبر واستكشاف المشكلات المهمة التي يجب مراعاتها عند العثور على نظام إدارة المحتوى المناسب لمشاريعك.



قبل ثلاثة أشهر (تمت كتابة المقالة الأصلية في ربيع 2019 -... أقلام ملاحظة) أصدرت WordPress Gutenberg ، لتوسيع إمكانية تحرير المحتوى افتراضيًا. الأمر الذي دفع العديد من الأشخاص إلى عدم الرضا عن هذا التغيير للبحث عن أنظمة إدارة المحتوى البديلة. اختار بعض المستخدمين للشوكة"ما قبل جوتنبرج" وورد. لكن هذا لا معنى له ، لأن WordPress تراكمت عليه ديون فنية هائلة على مدى 15 عامًا من وجوده. إذا كنت أبحث عن بديل لـ WordPress ، فسأحاول العثور على منصة ناضجة مبنية على التكنولوجيا الحديثة.



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



لماذا CMS أكتوبر



لقد علمت عن شهر أكتوبر عندما أصبحت أفضل نظام إدارة ملفات مسطح لعام 2018. بعد ذلك بدأت في دراسة هذه الأداة وقضيت وقتًا طويلاً في الانغماس فيها من وجهة نظر المستخدم والمطور. سرعان ما أدركت أنه كان كائنًا مناسبًا جدًا للمقارنة. لقد اخترت ذلك ، وليس خيارات بديلة مثل Grav و Statamic و ButterCMS و Joomla و Drupal و Jekyll و Hugo وما إلى ذلك. وإليك الأسباب الرئيسية:



  • اكتشفت كيف يعمل أكتوبر CMS (على عكس Grav) ؛
  • إنه مجاني ومفتوح المصدر (على عكس Statamic و ButterCMS) ؛
  • في سن الخامسة ، يمكن اعتباره جديدًا نسبيًا (على عكس Joomla و Drupal) ؛
  • يحتوي على توليد محتوى ديناميكي ويعمل في PHP (على عكس Jekyll و Hugo).


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



ماهو الفرق؟



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



لا يمكن استخلاص الاستنتاجات النهائية في هذه المقالة ، حيث أننا نعتبر هنا أحد الخيارات العديدة. على سبيل المثال ، يمكننا أيضًا العثور على مقارنات على الويب مثل "WordPress مقابل Drupal مقابل Joomla" أو "WordPress مقابل Static Site Generators" أو حتى "WordPress مقابل Medium". نظرًا لأن أيا من هذه المقالات لا يعطي صورة كاملة ، فلا يمكن اعتبار أي من هذه المقارنات نهائيًا. لذلك دعونا نقارن.



الفلسفة والجمهور المستهدف



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



"يجب أن يتمكن الأشخاص من أي أصل أو اهتمامات أو قدرات من الوصول إلى البرامج التي تسمح لهم بالتعبير عن أنفسهم على شبكة مفتوحة وامتلاك المحتوى الخاص بهم."


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



على العكس من ذلك ، يركز أكتوبر CMS بشكل أكبر على المطور ، والذي تم فهمه بوضوح منذ الإصدار :



"تقدم CMS لشهر أكتوبر فرضية جريئة ولكنها واضحة: لا يبني العملاء مواقع ويب ، بل يفعل المطورون ذلك. دور العميل هو إدارة الموقع وتوضيح متطلبات أعماله. يدور مطور الويب والصناعة نفسها حول التوسط في هذه العوامل ".


وفقًا لمؤسسيها ، فإن مهمة CMS في أكتوبر هي "إثبات أن بناء مواقع الويب ليس صعبًا للغاية". يعد نظام CMS أكتوبر القائم على Laravel نقطة انطلاق جيدة لكتابة كود معياري يمكن إعادة استخدامه. يتيح لك تطوير تطبيقات جيدة التصميم يسهل تخصيصها وصيانتها على المدى الطويل. يمكن دعم هذه التطبيقات وتخصيصها بالكامل دون استخدام الحلول البديلة ("العكازات") - فقط ما يجذب المبرمجين الجادين.



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



التركيب



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



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



curl -s https://octobercms.com/api/installer | php 


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



صورة



سلامة



لا يعتبر الجميع WordPress آمنًا بسبب العدد الكبير من نقاط الضعف التي يتم اكتشافها باستمرار. هذا يجبر المستخدمين على مواصلة تحديث CMS نفسها وجميع المكونات الإضافية المثبتة طوال الوقت لتجنب التهديدات الأمنية. من بين المشكلات الرئيسية دعم الإصدارات القديمة من PHP التي لم تعد مدعومة من قبل مجتمع مطوري PHP (يدعم WordPress حاليًا PHP 5.2.4 ، بينما آخر إصدار PHP مدعوم بالكامل هو 5.6). يجب حل هذه المشكلة في أبريل 2019 ، عندما يبدأ WordPress رسميًا في دعم إصدارات PHP 5.6 والإصدارات الأحدث (تم حل المشكلة بالفعل. - ترجمة تقريبًا) .



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



في المقابل ، ليس لدى CMS أكتوبر أي مشاكل أمنية ذات سمعة. ومع ذلك ، نظرًا لأن 27000 موقع نشط فقط تم إجراؤها في أكتوبر(مقارنة بالملايين في WordPress) ، لا يمكننا تقييم كلا النظامين بالتساوي. ومع ذلك ، يأخذ فريق تطوير CMS لشهر أكتوبر الأمن على محمل الجد. ويتجلى ذلك من خلال قيمة مطالبة تثبيت المعالج لإدخال عنوان URL للواجهة الخلفية لنظام إدارة المحتوى ، والتي يتم تعيينها على / الخلفية بشكل افتراضي ، ولكن يمكن تغييرها إلى شيء آخر لجعل الأمر أكثر صعوبة على القراصنة للتنقل في الموقع. تغيير تسجيل الدخول إلى WordPress وعناوين URL الخلفية مع /wp-login.php و / wp-admin على التوالي ، على العكس ، لا يمكن تحقيقه إلا من خلال المكون الإضافي . بالإضافة إلى ذلك ، يمكن أن يعمل CMS لشهر أكتوبر كبرنامج CMS لملف مسطح (أي لا توجد قاعدة بيانات) وتجنب نقاط الضعف المتعلقة بقاعدة البيانات مثل إدخال SQL.



مكدس التكنولوجيا



يعمل كل من WordPress و October CMS على مكدس LAMP التقليدي: Linux و Apache و MySQL و PHP. ومع ذلك ، مطلوب PHP فقط: يمكنك أيضًا استخدام Windows و Nginx و MariaDB ، وما إلى ذلك. يمكن أن تتصرف CMS لشهر أكتوبر مثل CMS لملف مسطح ، أي أنه يمكن الاستغناء عن قاعدة بيانات ، وإن كان ذلك على حساب الوظائف (على سبيل المثال ، تختفي مشاركات المدونة) ... الشيء الوحيد الذي يبقى مضمونًا هو وظيفة الصفحات ، والتي تعتبر الأساس لإنشاء المحتوى ونشره ويتم استخدامه كوظيفة رئيسية.



أما بالنسبة لمكدس اللغة ، فإن مواقع الويب التي تم إنشاؤها باستخدام WordPress و October CMS تستند إلى HTML و CSS و JavaScript (لاحظ أن PHP تستخدم لإنشاء HTML). يسهّل نظام CMS لشهر أكتوبر أيضًا استخدام ملفات LESS و SASS .



نموذج البرمجة



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



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



خطاف



يمكن وصف البرمجة في WordPress بأنها "تطوير الخطاف". الخطاف هو آلية تسمح لك بتغيير السلوك أو القيمة الافتراضية وتسمح لكود آخر بأداء الوظائف المقابلة. يتم إطلاق الخطافات من خلال "الإجراءات" التي تسمح لك بأداء وظائف إضافية ، و "المرشحات" التي تسمح لك بتغيير القيم.



الخطافات المنتشرة في قاعدة كود WordPress هي أحد الجوانب المفضلة لدي في برمجة WordPress. إنها تسمح للمكونات الإضافية بالتفاعل مع بعضها البعض ، أو النواة أو السمة ، مما يوفر الدعم الأساسي للبرمجة الموجهة نحو الجوانب .



الخبر السار هو أن Laravel (وبالتالي CMS أكتوبر) يدعم أيضًا مفهوم الخطافات التي تسمى"الأحداث" . توفر تطبيقًا بسيطًا لمفهوم المراقب ، مما يسمح لكودك بالاشتراك والاستماع إلى الأحداث التي تحدث في تطبيقك للرد حسب الحاجة. تسمح لك الأحداث بتقسيم الوظائف المعقدة إلى مكونات يمكنك تثبيتها بشكل مستقل. في نفس الوقت ، سوف يتفاعلون مع بعضهم البعض ، مما يسمح لك بإنشاء تطبيقات معيارية.



تبعية مكتبة جافا سكريبت



يتضمن أحدث إصدار من WordPress بشكل افتراضي Gutenberg استنادًا إلى React.js لإنشاء المحتوى. وبالتالي ، يعتمد تطوير WordPress الآن في الغالب على JavaScript (بشكل أساسي من خلال React ). على الرغم من أنه من الممكن استخدام أطر ومكتبات أخرى ، كما يتضح من كتل Elementor لـ Gutenberg ، استنادًا إلى Marionette .



بالإضافة إلى ذلك ، لا يزال WordPress يعتمد على Backbone.js (لـ Media Manager) و jQuery (الرمز القديم) ، ولكن من المتوقع أن يختفي الاعتماد على هذه المكتبات حيث يصبح Gutenberg هو الافتراضي الجديد.



يعتمد CMS لشهر أكتوبر على jQuery ، والذي يستخدمه لتطبيقه الاختياريإطار AJAX لتحميل البيانات من الخادم دون تحديث صفحة المتصفح.



الصفحات والمواضيع والمكونات الإضافية



يعتبر كل من WordPress و October CMS الصفحة كوحدة أساسية لإنشاء المحتوى ونشره (في حالة WordPress ، بالإضافة إلى المنشورات). كلاهما يدعم تغيير مظهر الموقع باستخدام السمات ويسمح لك بتثبيت وتوسيع الوظائف باستخدام الإضافات.



على الرغم من أن المفاهيم هي نفسها في كل من CMS ، هناك بعض الاختلافات في التنفيذ. ونتيجة لذلك ، يتصرفون بشكل مختلف قليلاً.



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



في المقابل ، صفحات CMS لشهر أكتوبر هي ملفات ثابتة مخزنة في دليل السمة. تكمن ميزة هذا الحل المعماري في أنه يمكن إنشاء محتوى الصفحة من تطبيق خارجي ، مثل برامج تحرير النصوص مثل Sublime أو Visual Studio Code . من ناحية أخرى ، عند التبديل من موضوع إلى آخر ، يجب عليك إعادة إنشاء أو نسخ الصفحات يدويًا من السمة الحالية إلى السمة الجديدة ، وإلا فستختفي.



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



صورة



وظائف ومكونات إضافية جاهزة



يوفر WordPress الحد الأدنى من الوظائف الأساسية التي يمكن تحسينها باستخدام المكونات الإضافية . يلتزم "بقاعدة 80-20" ليقرر ما إذا كان سيتم تضمين وظائف معينة في نواة أم لا.



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



صورة



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



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



صورة



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



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



من السهل الشعور بذلك إذا نظرنا إلى مفهوم "المستخدم": في WordPress ، ينتمي المستخدمون ومسؤولو الموقع إلى نفس كيان المستخدم (ويمكننا جعل المستخدم مسؤولًا من خلال الأدوار والامتيازات). في أكتوبر CMS ، يتم تنفيذ هذين المفهومين بشكل منفصل: خارج الصندوق ، تتوفر وظيفة المسؤول ، الذين يمكنهم تسجيل الدخول إلى لوحة المشرف وتغيير الإعدادات ، بينما يتم تنفيذ المستخدمين المسجلين من خلال مكون إضافي منفصل. لدى هذين النوعين من المستخدمين عمليات تسجيل دخول مختلفة وجداول قاعدة بيانات مختلفة لتخزين البيانات. وبالتالي ، قد يتم انتهاك مبدأ DRY (لا تكرر نفسك).



لا تنشأ هذه المشكلة فقط فيما يتعلق بسلوك الكيان ، ولكن أيضًا ما هي حقول البيانات التي يجب أن تحتوي عليها. على سبيل المثال ، هل يجب تحديد حقول بيانات المستخدم مسبقًا على الموقع؟ هل حقل برقم هاتف مطلوب؟ وحقل URL على Instagram ، نظرًا لأن Instagram أصبح شائعًا جدًا نسبيًا مؤخرًا؟ وإذا أنشأنا موقعًا احترافيًا ، فهل يجب أن نستخدم LinkedIn بدلاً من Instagram؟ تعتمد هذه القرارات بشكل فريد على الموقف ولا يمكن اتخاذها من قبل CMS أو البرنامج المساعد.



يقوم المكون الإضافي CMS لشهر أكتوبر الذي يسمى المستخدم بتطبيق نظام المستخدم ، ولكن بدون حقول مخصصة. ويضيف المكون الإضافي User Plus بعض الحقول المخصصة الإضافية. إذا لم تكن كافية - فهناك مكون إضافي لـ User Plus + يضيف المزيد من الحقول المخصصة. متى حان الوقت للتوقف؟(نحن في LOVATA قامت بتطوير البرنامج المساعد الخاص الأصدقاء ، والتي تحل هذه المشكلة ويسمح لك لإنشاء أي عدد من أي حقول مخصصة -. تقريبا Transl)



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



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



نظرًا لعدم العثور على WordPress أو October CMS الحل المثالي لتجنب الانتفاخ ، فأنت بحاجة إلى تصميم أي بنية تطبيق بعناية لتجنب المشاكل المستقبلية.



انشاء محتوى



يجلب غوتنبرغ ابتكارين إلى WordPress: فهو يستخدم المكونات ككيان لبناء مواقع الويب ، والتي لها العديد من المزايا على ترميز HTML blob ، وتقدم كيانًا جديدًا يسمى "block" ، والذي بعد الانتهاء من Gutenberg Phase 2 في 2019 (تم تنفيذه بالفعل. - تقريبًا.) . سيقدم طريقة موحدة لتضمين محتوى في الموقع ، مما يبسط عمل المستخدم مقارنةً بالعملية الفوضوية لإضافة محتوى باستخدام الرموز القصيرة و TinyMCE والقوائم والأدوات وما إلى ذلك.



صورة



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



إذا كانت الوحدة الرئيسية لإنشاء المحتوى في WordPress هي مكونات React ، فإن CMS لشهر أكتوبر يعتمد على فكرة أن HTML القديم الجيد يكفي لإنشاء مواقع ويب. في الواقع ، عند إنشاء صفحة ، نعمل مع محرر HTML عادي (ترميز).



صورة



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



بالإضافة إلى ذلك ، يمكن أن تحتوي الصفحات على كتل المحتوى(المحتوى) ، وهي ملفات نصية أو HTML أو Markdown يمكن تحريرها بشكل منفصل. يمكن أن تحتوي أيضًا على مكونات ، وهي وظائف يتم تنفيذها باستخدام المكونات الإضافية. أخيرًا ، إذا لم يكن HTML كافيًا ونحتاج إلى إنشاء رمز ديناميكي ، فيمكن إضافة وظائف PHP .



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



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



مدير الإعلام



يحتوي كل من WordPress و October CMS على مدير وسائط يتيح لك إضافة ملفات وسائط إلى موقعك دون عناء ، ويدعم إضافة ملفات متعددة في نفس الوقت باستخدام السحب والإفلات ، وعرض الصور في منطقة المحتوى. إنهم يتصرفون ويتصرفون بنفس الطريقة تقريبًا: الاختلاف الواضح الوحيد الذي لاحظته هو أن Media Manager لـ WordPress يسمح لك بتضمين معارض الصور ، بينما يسمح لك Media Manager لـ أكتوبر CMS بإنشاء بنية المجلد التي تستضيف الملفات التي تم تحميلها يدويًا.



صورة



ولكن منذ ظهور Gutenberg ، توسعت إمكانات الوسائط في WordPress بشكل ملحوظ: يمكنك الآن تضمين مقاطع الفيديو والصور ومعارض الصور ، على عكس محرر TinyMCE ، الذي يقدم فقط نسخة غير دقيقة من كيفية ظهوره على الموقع. كما أضافوا وظائف مثيرة للاهتمام ، ولكنها سهلة الاستخدام موضحة في هذا الفيديو .



تدويل



يستخدم WordPress core gettext لتمكين ترجمة السمات والمكونات الإضافية . بدءًا من ملف .pot يحتوي على جميع السلاسل للترجمة ، نحتاج إلى إنشاء ملف .po يحتوي على ترجمتها إلى اللغة المناسبة. ثم يتم تجميع هذا الملف في ملف ثنائي .mo مناسب لاستخراج الترجمة بسرعة. من بين الأدوات اللازمة لإنجاز هذه المهام GlotPress (عبر الإنترنت) و Poedit (تطبيق قابل للتنزيل). بشكل ملائم ، تعمل هذه الآلية أيضًا في التوطين من جانب العميل لـ Gutenberg.



صورة



ليس لدى WordPress حاليًا حل أساسي واحد لترجمة المحتوى ولن يقدمها حتى المرحلة 4 من Gutenberg(المقرر لعام 2020 أو أحدث). في الوقت الحالي ، سيتم توفير هذه الوظيفة من خلال المكونات الإضافية التي تقدم استراتيجيات مختلفة لتخزين المحتوى المترجم وإدارته. على سبيل المثال ، تقوم المكونات الإضافية مثل Polylang و WPML بتخزين كل ترجمة في صف منفصل من جدول قاعدة بيانات مخصص. يعد هذا ملائمًا لأن المحتوى ليس عشوائيًا ، ولكنه أبطأ لأنه يتطلب صلة داخلية إضافية من الجدولين عند الاستعلام عن قاعدة البيانات. يخزن المكون الإضافي qTranslate X جميع الترجمات في حقل واحد من جدول قاعدة البيانات الأصلي. وبهذه الطريقة يتم طلب البيانات بشكل أسرع ، ولكن بسبب اختلاط المحتوى ، قد ينقطع الموقع إذا قمت بتعطيل المكون الإضافي. يبقى لنا أن نختار الاستراتيجية التي تناسب احتياجاتنا.



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



في WordPress ، تعد الصفحة مجرد مشاركة تحتوي على نوع مشاركة "صفحة" ، وهناك آلية ترجمة واحدة لهم. في أكتوبر CMS هناك كائنات "صفحة" ، "صفحة ثابتة" و "مشاركة مدونة". على الرغم من أنها متشابهة جدًا ، إلا أنها تتطلب ثلاثة تطبيقات ترجمة مختلفة! يمكن أن يتضمن محتوى "الصفحة" رموز الرسائل (على سبيل المثال ، الرموز المسماة nav.content ، header.title ، وما إلى ذلك) ، كل منها يحتوي على ترجماته الخاصة لجميع اللغات ككائن JSON متسلسل في جدول قاعدة بيانات rainlab_translate_messages.



يتم إنشاء محتوى "الصفحة الثابتة" في ملف ثابت جديد لكل لغة ، على الرغم من أن كافة عناوين URL المترجمة لجميع اللغات لا يتم تخزينها في الملف المقابل ، ولكن في ملف اللغة الافتراضي.



يتم تخزين محتوى منشور المدونة ككائن JSON متسلسل مع صف واحد لكل لغة في جدول قاعدة بيانات rainlab_translate_attributes ، ويتم تخزين عنوان URL المترجم مع صف واحد لكل لغة في جدول قاعدة بيانات rainlab_translate_indexes.



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



إدارة البرنامج المساعد



يقدم كل من WordPress و October CMS مديرًا إضافيًا للمكونات الإضافية يسمح لك بالعثور على المكونات الإضافية الجديدة وتثبيتها وتحديث المكونات الإضافية المثبتة مسبقًا إلى أحدث إصدار - كل ذلك من خلال الواجهة الخلفية.



صورة



إدارة التبعية



تستخدم أكتوبر CMS Composer كمدير للحزم ، مما يسمح للمكونات الإضافية بتنزيل وتثبيت تبعياتها عند التثبيت ، وبالتالي ضمان التطوير غير المؤلم.



على النقيض من ذلك ، لم يقم WordPress بتطبيق Composer رسميًا (مثل أي مدير تبعية PHP آخر) ، لأنه لا يوجد اتفاق حول ما إذا كان موقع WordPress أو تبعيته . لذلك ، إذا كانوا بحاجة إلى Composer للمشاريع ، يحتاج المطورون إلى إضافته بأنفسهم .



مع الانتقال إلى Gutenberg ، أصبحت NPM مدير اعتماد JavaScript المفضل ، وتعتمد أدوات المطورين الشهيرة عليه ، ويتم إصدار مكتبات العملاء باستمرار كحزم مستقلة.في سجل الآلية الوقائية الوطنية .



تفاعل قاعدة البيانات



يوفر WordPress وظائف لاسترداد البيانات من قاعدة بيانات (مثل get_posts) وتخزينها (مثل wp_insert_post و wp_update_post). عند استرداد البيانات ، يمكننا تمرير المعلمات لتصفية النتائج وتحديدها وترتيبها ، للإشارة إلى ما إذا كان يجب تمرير النتيجة كمثيل لفئة أو كمجموعة من الخصائص ، وما إلى ذلك. عندما لا تفي الوظيفة باحتياجاتنا بالكامل (على سبيل المثال ، عندما نحتاج إلى INNER JOIN مع جدول مخصص) ، يمكننا الاستعلام عن قاعدة البيانات مباشرة عبر المتغير العام $ wpdb. عند إنشاء مكون إضافي بنوع سجل مخصص ، من المرجح أن ينفذ الرمز استعلامات SQL مخصصة لاسترداد و / أو حفظ البيانات في جداول المستخدم.وبالتالي ، يحاول WordPress توفير الوصول إلى قاعدة البيانات من خلال الوظائف المشتركة في المرحلة الأولى والوصول إلى قاعدة البيانات ذات المستوى المنخفض في المرحلة الثانية.



في أكتوبر ، تستخدم CMS نهجًا مختلفًا: بدلاً من الاتصال مباشرةً بتطبيق قاعدة بيانات يستخدم Eloquent ORM من Laravel للوصول إلى البيانات في قاعدة البيانات ، ومعالجتها باستخدام مثيلات الفئة (النماذج). وبفضل هذا ، يجب أن يستند التفاعل مع قاعدة البيانات أيضًا إلى مبادئ البرمجة الشيئية. هذا وصول عالي المستوى ؛ البرنامج المساعد يمكن استرداد و / أو حفظ البيانات دون كتابة سلسلة SQL، وذلك ببساطة عن طريق اتباع قواعد لإنشاء الجداول و إقامة علاقات بين الأشياء . على سبيل المثال ، يجلب الرمز أدناه كائنًا من قاعدة البيانات عبر نموذج Flight ، ويغير الخاصية ، ويحفظها مرة أخرى.



$flight = Flight::find(1);
$flight->name = 'Darwin to Adelaide';
$flight->save();




تحديث نموذج البيانات



سبب آخر لنجاح WordPress (إلى جانب عدم كسر التوافق العكسي) كان بنية قاعدة بياناته.... تم تصميمه للسماح للتطبيقات بالنمو بمرور الوقت. يتم تحقيق هذا الهدف من خلال الخصائص الوصفية ، أي الخصائص التي يمكن إضافتها بحرية إلى كائن قاعدة البيانات في أي وقت. لا يتم تخزين هذه الخصائص في عمود جدول الكائن المقابل (wp_posts أو wp_users أو wp_comments أو wp_terms) ، ولكن كصف في جدول meta المقابل (wp_postmeta أو wp_usermeta أو wp_commentmeta أو wp_termmeta) ويتم استرجاعها باستخدام INNER JOIN. وبالتالي ، بينما يكون استرداد قيم التعريف هذه أبطأ ، فإنها توفر المرونة. أي أن نموذج بيانات التطبيق نادرًا ما يحتاج إلى إعادة بناء البنية من الصفر لتنفيذ بعض الوظائف الجديدة.



صورة



لا تستخدم CMS لشهر أكتوبر خصائص التعريف ، ولكن يمكنها تخزين قيم عشوائية متعددة. لا تظهر مباشرة كأعمدة في جداول قاعدة البيانات ، مثل كائن JSON متسلسل . خلاف ذلك ، عندما يحتاج الكائن إلى بعض الخصائص الجديدة ، نحتاج إلى إضافة عمود جديد إلى الجدول المقابل (يستخدم هذا الإضافات User Plus و User Plus + المذكورة أعلاه). لتحديث مخطط قاعدة بيانات التطبيق ، يعتمد أكتوبر CMS على عمليات ترحيل Laravel ، وهي عبارة عن مجموعات من التعليمات لتنفيذ المخطط (مثل إضافة عمود أو إزالته ، وإعادة تسمية فهرس ، وما إلى ذلك). يتم تنفيذها عند تحديث البرنامج ، على سبيل المثال عندما يتم تثبيت إصدار جديد من البرنامج المساعد.



قدرات بلا رأس



يمكن استخدام كل من WordPress و October CMS بشكل مستقل. أي أنه يمكننا اعتبار CMS نظامًا لإدارة المحتوى يجعل المحتوى يمكن الوصول إليه من خلال واجهة برمجة التطبيقات ، ويسمح لك بعرض موقع الويب على جانب العميل ويمكنه دعم التطبيقات الأخرى ، على سبيل المثال ، الجوال. في الواقع ، يتحرك WordPress بثبات نحو بلا رأس ، حيث يرى محرر محتوى Gutenberg أن WordPress هو CMS بدون رأس. ونتيجة لذلك ، يمكن أن يعمل Gutenberg أيضًا مع أي CMS أخرى ، كما ترى في مثال Drupal Gutenberg (يوجد بالفعل تطبيق Gutenberg لنظام CMS لشهر أكتوبر . - Ed. Transl.) .



يحتاج النظام بدون رأس إلى تطبيق نوع ما من API لإعادة البيانات ، مثل REST أو GraphQL... يدعم WordPress REST من خلال WP REST API ، مما يوفر نقاط نهاية على طول المسار / wp-json / wp / v2 / ... ؛ يدعم CMS لشهر أكتوبر REST من خلال RESTful plugins و API Generator ، والتي تتيح لك إنشاء نقاط نهاية مخصصة ، ونتيجة لذلك ، دعم التحكم في الإصدار كجزء من عنوان URL لنقطة النهاية ويمكن أن يوفر حماية أفضل ضد برامج الروبوت. يدعم WordPress أيضًا GraphQL من خلال WPGraphQL ، ولكن لا يحتوي CMS في أكتوبر على واحد.



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



يمكن لـ CMS لشهر أكتوبر استبعاد قاعدة بيانات والتصرف مثل نظام الملفات المسطحة ، أو الحصول على قاعدة بيانات والتصرف مثل محتوى هجين ، تخزين محتوى الصفحة كملفات ثابتة ومشاركات مدونة في قاعدة البيانات. لذلك ، المحتوى ليس مركزيًا ويحتاج إلى نهج مختلف لإدارته. على سبيل المثال ، بينما يمكننا استخدام Git لصفحات التحكم في الإصدار ، لا يوجد دعم لإصدار قاعدة البيانات في حد ذاته. الحل لهذه المشكلة هو ملء البيانات في قاعدة البيانات من خلال البذارةوالتي ، ككود ، يمكن نسخها وتنفيذها أثناء النشر. بالإضافة إلى ذلك ، لا يقدم CMS لشهر أكتوبر نموذج قاعدة بيانات مدمج مع كائنات بيانات محددة مسبقًا من شأنها تلبية احتياجات معظم التطبيقات. لذلك ، لتطبيق نموذج البيانات الخاص به ، من المرجح أن يحتاج التطبيق إلى تطوير فردي ، وهو المزيد من العمل. من ناحية أخرى ، يمكن أن يكون أكثر كفاءة (على سبيل المثال ، الوصول إلى خاصية من عمود أسرع من صف في جدول آخر باستخدام INNER JOIN في الخصائص الوصفية لـ WordPress).



دعم CLI



يمكن التفاعل مع كل من WordPress و أكتوبر CMS من خلال وحدة التحكم باستخدام واجهة سطر الأوامر (CLI): في WordPress ، يتم ذلك من خلال WP-CLI ، وفي أكتوبر CMS من خلال Artisan من Laravel. بالإضافة إلى أوامر Laravel ، تطبق أكتوبر CMS العديد من الأوامر الأصلية لتحديثات النظام ، وترحيل قاعدة البيانات ، وما إلى ذلك. هذه الأدوات تجعل الوصول إلى الموقع خارج المتصفح مناسبًا جدًا ، على سبيل المثال ، للاختبار.



الاستضافة



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



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



السوق والنظام البيئي والقيمة



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



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



كونه جديدًا نسبيًا ، فهو يبلغ من العمر خمس سنوات فقط ( بالفعل ستة. - تقريبًا. ترجمة.) ، فإن OctoberCMS بالتأكيد متخلفة عن WordPress من حيث النظام البيئي وحجم السوق ، لكنها تنمو بشكل مطرد. يضم سوقها حاليًا أكثر من 600 مكونًا إضافيًا والعديد من المظاهر (اعتبارًا من حزيران (يونيو) 2020 ، تم نشر أكثر من 900 مكون إضافي ونحو 200 سمة . - تقريبًا. ترجمة.) . فيما يتعلق بالمكونات الإضافية ، يطلب فريق أكتوبر CMS من المجتمع بذل جهد لإنشاء مكونات إضافية أصلية تقدم وظائف لم يتم توفيرها من قبل أي شخص آخر.



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



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



في رأيي ، نظرًا لقلة الموضوعات والمكونات الإضافية ، فإن إنشاء موقع بسيط في OctoberCMS سيكلف أكثر من إنشاء موقع مماثل على WordPress. ولكن بالنسبة للمواقع المعقدة ، فإن أفضل هندسة أكتوبر (نماذج البرمجة الموجهة للكائنات و Model-View-Controller) تجعل البرنامج أسهل في الصيانة ، ونتيجة لذلك ، من المحتمل أن تكون أرخص.



تواصل اجتماعي



كونك جزءًا من مجتمع WordPress والوصول إليه هو أحد الأسباب الأكثر إلحاحًا لاستخدام WordPress. هذا لا يرجع فقط إلى الحجم (فهو يوفر ما يقرب من ثلث جميع مواقع الويب في العالم ، ويرتبط الكثير من الأطراف المهتمة بـ WordPress ، ومجتمعه كبير بشكل مثير للإعجاب) ، ولكن أيضًا للتنوع. يشمل مجتمع WordPress أشخاصًا من مختلف المهن - المطورين والمسوقين والمصممين والمدونين والبائعين ، وما إلى ذلك ، والأشخاص من جميع أنحاء العالم والبلدان الذين يتحدثون لغات عديدة ، من خلفيات اجتماعية واقتصادية مختلفة ، مع خلفيات مختلفة ، أو إعاقات ، أو بدونهم ، يمثلون الشركات والمنظمات غير الربحية والحكومية ، إلخ. لذلك ، من المحتمل أنه مهما كانت المشكلة التي نواجهها ، فمن المحتمل أن يكون شخص ما قادرًا على المساعدة في أحدمنتديات الدعم . إن المساهمة في WordPress بسيطة للغاية أيضًا: تجمع مجموعة Make WordPress بين أصحاب المصلحة المهتمين بدعم مختلف المشاريع (إمكانية الوصول والتصميم والتدويل وغير ذلك الكثير) وتنظيم كيفية وكيفية التواصل بانتظام - بشكل رئيسي من خلال قناة في الدردشة الخاصة بك على Slack .



بالإضافة إلى ذلك ، فإن مجتمع WordPress حقيقي وملموس: فهو لا يتواجد فقط على الإنترنت ، ولكنه يجمع دون اتصال بالإنترنت في WordCamps والتجمعات الأخرى حول العالم. في 2018تم عقد 145 برنامج WordCamps في 48 دولة ، حيث تم بيع ما مجموعه 45000 تذكرة ، وما مجموعه 5400 لقاء مع 687 مجموعة. لذلك ، من المحتمل أن تكون هناك خلية محلية قريبة يمكن لأي شخص الانضمام إليها لطلب المساعدة ، وتعلم كيفية استخدام النظام الأساسي ، والتعلم بشكل منتظم ، وتعليم الآخرين. وبهذا المعنى ، فإن WordPress ليس مجرد نظام إدارة محتوى ، ولكن الأهم من ذلك أنه أشخاص. لذلك ، يجب ألا تقرر مطلقًا التخلي عن WordPress لمجرد خصائصه التقنية ، من المهم أيضًا مراعاة مجتمعه.



صورة



يكون مجتمع CMS في أكتوبر أصغر وأقل تنوعًا في بعض الأحيان من مجتمع WordPress ، على الرغم من أنه ينمو بشكل مطرد بعد شعبيته المتزايدة. يقدم أكتوبر منتدى دعم، حيث يمكنك طلب المساعدة ، فهو ليس نشطًا جدًا. هناك أيضًا دردشة Slack (مجمدة رسميًا في الوقت الحالي ، ينتقل المجتمع إلى Discord - Translations تقريبًا) ، وهي نشطة للغاية ويتم فيها تسجيل مؤسسي أكتوبر بشكل منتظم للتأكد من حل جميع الطلبات بشكل صحيح. تُعد هذه الدردشة فرصة رائعة للحصول على بعض النصائح البسيطة واختراق الحياة عند استخدام أكتوبر ، ولكنها مخصصة بشكل أساسي للمطورين: لا توجد قنوات حول إمكانية الوصول والتصميم والتدويل ومواضيع أخرى مثل WordPress. على الأقل لغاية الآن. لا توجد حاليًا مؤتمرات تتعلق بنظام CMS لشهر أكتوبر ، ولكن هناك Laracon - مؤتمر لمجتمع Laravel.



سياسة المراقبين وإدارة المشروع



هل يمكننا التأكد من أن البرنامج سيستمر لفترة طويلة ، وإذا قررنا بدء مشروع اليوم ، فلن نضطر إلى الانتقال إلى نظام أساسي آخر في المستقبل؟ كم عدد الأشخاص الذين يطورون البرامج؟ من يقرر الاتجاه الذي تسير فيه؟



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



يتم اتخاذ القرارات المتعلقة بتوجيه تطوير CMS أكتوبر بشكل رئيسي من قبل المؤسسين أليكسي بوبكوف وصموئيل جورج ، وكذلك المطور ومدير المجتمع لوك تاورز... لم تكن CMS لشهر أكتوبر على دراية بعد بمثل هذا الترف كمشكلة إدارية: فهي الآن أكثر اهتمامًا بكيفية جعل المشروع مستدامًا وكيفية جعله يدر إيرادات لفريق التطوير.



توثيق



وثائق WordPress ليست شاملة ، لكنها تقوم بعمل جيد للغاية. ولكن إذا أخذت في الاعتبار جميع وثائق WordPress من جميع المصادر ، مثل المواقع المعروفة ( مجلة Smashing ، وحيل CSS ، وما إلى ذلك) ، والمواقع المتخصصة ( WPShout ، و WPBeginner وغيرها) ، والمدونات الشخصية ، والدورات عبر الإنترنت ، تقريبًا لا يوجد جانب من العمل مع WordPress لم يتم التطرق إليه بعد.



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



ولكن هناك أيضًا عيوب. تستخدم وثائق أكتوبر مصطلحات مشتقة من Laravel ، مثل الوسيطة وحاوية الخدمة والواجهات والعقود ، دون تفسير كافٍ لما هي. لذلك ، قد يكون من المفيد قراءة وثائق Laravel أولاً. لحسن الحظ ، إنه واسع ومفهوم ، كما أن تسجيلات Laravast's Laracasts هي مصدر رائع آخر لا لاستكشاف Laravel فحسب ، بل تطوير الويب بشكل عام.



انتاج |



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



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



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



في الختام ، أود أن أشير إلى أن دراسة كيفية عمل نظام إدارة المحتوى يعد في حد ذاته مفيدًا للغاية ، بغض النظر عما إذا قررت استخدام نظام إدارة المحتوى هذا أم لا. على سبيل المثال ، كنت أعمل على WordPress لسنوات ، والتعرف على أكتوبر CMS هو موضوع جديد حول موضوع علمني الكثير من الأشياء (مثل امتلاك إرشادات معايير PHP ) التي لم أواجهها في WordPress. الآن الأمر متروك لي لتحديد ما إذا كنت تريد تغيير CMS أو البقاء على WordPress.



All Articles