BALCMS هو إطار Zend وعقيدة CMS التي تعمل بالطاقة.
تختلف BALCMS عن CMS الأخرى حيث يمكننا تمديدها مباشرة عن طريق إضافة وحدة جديدة - أو حتى عن طريق تعديل CMS مباشرة (لأن CMS هي مجرد وحدة ونمطية من التبعيات). لا توجد CMS الأخرى التي أعرفها بالفعل يتيح للمطورين تمديد CMS بسهولة ، ومع ذلك مباشرة ، عادةً ما تكون مغلقًا في إطار عمل محدد ومحدود - والذي تمتص الكرات حقًا إذا كنت تحاول إنشاء CMs قابلة للتطوير وقابلة للتمديد للتطبيقات المخصصة. على هذا النحو ، إذا كنت لا تحب شيئًا ما حول الصقور أو تحتاج إلى إضافة وظائف جديدة يمكنك الوصول إليها مباشرة والقيام بذلك! فكر في الأمر كأساس أكثر من كونه قفل. إنه متحرر! BALCMS هي أيضًا برمجيات عالية الرأي ، فهي تتبع أفضل الممارسات دينياً.
تعتمد الصقور اعتمادًا كبيرًا على سطر الأوامر. إذا كنت على منصة UNIX/MAC/Linux ، فستجد التثبيت والاستخدام واضحًا تمامًا. إذا كنت على منصة Windows ، فقد تواجه منحنى تعليمي تمامًا (وتتطلب تشغيل الأوامر من خلال محطة Cygwin) - نقترح الحصول على جهاز Mac.
لن يكون هناك أبداً واجهة المستخدم الرسومية في الواجهة الأمامية لاستبدال التبعية على سطر الأوامر ، حيث نرى هذا التبعية على أنها مبررة لتكون أفضل الممارسات. بمجرد أن تتعرف على ذلك ، أنت مع. الآن هذا هو التمكين.
لنظام Windows ستحتاج إلى تثبيت:
بالنسبة لـ UNIX/MAC/Linux ، ستحتاج إلى تثبيت:
ستوفر لك هذه التثبيتات المتطلبات التالية:
أولاً ، سنحتاج إلى التأكد من تكوين بيئتك بشكل صحيح. لهذا المدى ./cli check-env . إذا لم تُرجع أي رسائل خطأ ، فيمكنك المتابعة. إذا حدث ذلك ، يرجى حضور الرسائل. إذا تلقيت رسالة تقول إن تثبيت GIT الخاص بك لم يتم تكوينه ، فإن أسهل طريقة لتكوينها هي إعداد حساب مجاني جديد على GitHub ، وإنشاء مستودع جديد معهم ، واتبع تعليماتهم حول استخدام وتأسيس المستودع - بمجرد القيام بتثبيت GIT الخاص بك ، سيتم تشغيله ./cli check-env الصقور.
قم بتشغيل الأوامر التالية:
mkdir mywebsite
cd mywebsite
curl -OL http://github.com/balupton/balcms/raw/master/cli
./cli birth
Explanation: ما نفعله هنا هو إنشاء دليل موقع الويب الجديد (المجلد) ، ثم إحضار واجهة سطر الأوامر الخاصة بتطبيقنا. وجود هذا الملف ، يمكننا بعد ذلك تشغيل
./cli birth. يتألف أمر./cli birthبالفعل من ثلاثة أوامر مهمة أخرى هي:
./cli init-new./cli configureأي تبعيات ومتطلبات CMS وتكوين بنية الدليل./cli install
سوف نستخدم هذه الأوامر وتشابهها لاحقًا.
أثناء تشغيل ذلك ، سيحتاج موقع الويب الخاص بك إلى مستودع GIT العام أو الخاص. يمكنك إنشاء واحدة على Github (على الرغم من أنك إذا كنت ترغب في الحصول على حساب خاص ، فستحتاج إلى حساب مدفوع الأجر) ، أو يمكنك العثور على مضيف GIT خاص بديل.
بمجرد تشغيل هذه الأوامر ، ويتم إعداد مستودع GIT عن بُعد. نريد أن نربط مستودعنا المحلي بالمستودع البعيد. نحن نفعل ذلك عن طريق نسخ عنوان URL الخاص بـ REMOTE RESTORETORY's RED+، يجب أن يبدو شيئًا مثل [email protected]:balupton/balcms.git . مع ذلك سنقوم بتشغيل الأوامر التالية:
git remote add origin {your git repos read/write url} ; make deploy
Explanation
masterسوف./cli deployأخيرًا ، سيتم إرسال كل هذه التغييرات إلى مستودعنا عن بُعد.
نريد إرسال تغييراتنا إلى المستودع عن بُعد حيث يمكننا النشر على الخادم البعيد الخاص بنا (حيث سيتم استضافة موقعنا على الويب والوصول إليه بالفعل). فوائد أخرى هي أيضا في حالة تعطل بيئة التطوير لدينا ، سيكون لدينا نسخة احتياطية عن بعد. الفائدة الأخيرة وربما الأفضل ، هي أنه إذا كنا نعمل مع أشخاص آخرين ، فإنه يسمح لنا بالتعاون معًا بسلاسة.
بمجرد الانتهاء من ذلك ، ستتمكن الآن من زيارة موقع Balcms الجديد. لذلك ، دعنا ننتقل إلى مضيفنا المحلي والدليل الذي قمنا بتثبيته فيه (على سبيل المثال http://localhost/sites/mywebsite ).
لإدارة موقع الويب الخاص بك الجديد ، ستذهب إلى موقع admin على موقع الويب الخاص بك (على سبيل المثال http://localhost/sites/mywebsite/admin ). اسم المستخدم الافتراضي هو admin وكلمة المرور random - يتم تحديدها في application/data/fixtures/data.yml ، أو يمكنك تغييرها باستخدام منطقة إدارة المستخدمين.
يعتمد هيكل BALCMS على بنية إطار عمل Zend القياسية المعيارية مع امتدادات إضافية لتسهيل التكوين والتوطين ، مع الدعم للالتهاب ، وتحميلات الوسائط ، وتغيير حجم الصورة خارج المربع.
لذلك دعونا نلقي نظرة على الهيكل:
.gitignore - Used to tell Git about the files that we do not want committed to our repository (e.g. cache files)
.htaccess - Used to tell Apache about how requests should be handled
application/
config/
data/
cache/
database/ - Contains our SQLite Databases
dump/
fixtures/ - Contains our Initial Database Data
logs/
schema/ - Contains our Database Structure
layouts/
models/ - Contains the Models we actually use, these inherit from the models in the following sub-directories
Bal/ - Core models included by the BalPHP Library
Balcms/ - Core models used by BalCMS (these typically inherit the Bal models)
Base/ - Autogenerated by Doctrine ORM
modules/
balcms/
config/ - Our module specific Configuration
controllers/ - Our module specific Business Logic
BackController.php - For our Administration/Back Area
FeedController.php - For our News/RSS/Atom/Subscription Feeds
FrontController.php - For our Public/Front Area
views/ - Our module specific View Logic
helpers/ - Contains our Standard Content Widgets (used within our posts)
scripts/ - Contains our View Scripts
default/ - Contains our Default/Base Modules (used for Error Handling)
cli - BalCMS's Command Line Interface
common/ - Used to contain our submodules/requirements/dependencies used by BalCMS (e.g. zend framework)
config.php
il8n/ - Contains our Localisation/Language files.
index.php
public/
images/
media/
cache/ - Used by the inbuilt bundlers (View Helpers: HeadScriptBundler, HeadLinkBundler)
scripts/
styles/
deleted/ - Where deleted files go (if we don't hard delete them)
image.php - Handles on-the-fly image resizing
images/ - Where the generated/compressed/resized images go
invoices/ - Used for our invoicing functionality (not documented)
uploads/ - Where user uploads go
scripts/
styles/
themes/ - Where our applications themes go, if you want to customise the look and feel of the application, this is where it's at.
albeo/ - The default theme. Creamy green.
balcms/ - The administration theme.
titan - A creamy brown theme.
README.md - This readme that you're reading right now.
robots.txt - What to tell Search Engines. Read up on google.
scripts/ - Contains scripts used by our CLI to perform specific actions
tests/ - Unit tests for our application.
إذا كان أي مما سبق مربكًا ، فيرجى الرجوع إلى المقالات التالية:
يحتوي BALCMS على ملفات التكوين في المواقع التالية:
config.php - Used detect and set our environment (i.e. development, staging or production).
application/
config/
application.yml - Used to specify the configuration for our environments.
core.yml - Used to specify the paths that our environments will use.
nav.yml - Used to specify navigation items used in our CMS.
routes.yml - Used to specify how requests are directed in our CMS.
default/ - Contains the files that the above config files inherit their config from. Never edit the files in this directory (as they will be overwritten when you do an upgrade).
data/
fixtures/
data.yml - Used to specify the default data that is loaded into our database
schema/
schema.yml - Used to specify our database structure (our models)
الملفات التي ستهتم بها هي config.php و application.yml ، في بعض الأحيان nav.yml . ما لم تكن تخطط لتوسيع نطاق الصدارة لإضافة وظائف مخصصة ، فلن تحتاج أبدًا إلى لمس ملفات التكوين الأخرى.
تتضمن ملفات الوثائق إما الوثائق المضمنة (مستندات داخلها) أو أنها توضيحية ذاتية. إن عملية تغيير المحرر التي نود استخدامها لمحتوىنا ستحدث مثل هذا:
application/config/default/application.yml ، ابحث عن الخاصية المناسبة - في هذه الحالة ، editor.code .application/config/application.yml - بحيث نقوم بتحرير ملف التكوين الخاص بنا ، وليس الافتراضي../cli clean-config لارتكاب تغييراتك ، سترغب في تشغيل الأوامر التالية:
cd mywebsite
git status
git add -u
git status
git add {the untracked files reported by the git status}
git commit -m "My Changes... {this is your message}" (note: this commits your changes)
git push origin --all (note: this sends your changes to the remote repository)
Explanation: ما تفعله
git statusهو أن تُظهر لنا التغييرات التي أجريناها ، ونحن نستخدم هذه المرة الأولى للتحقق من التغييرات التي يتم إجراؤها (حتى نتمكن من معرفة ما إذا كنا نريد إجراء هذه التغييرات) أم لا. يمكننا في الواقع رؤية التغييرات بالتفصيل عن طريق تشغيلgit diff. نضيف بعد ذلك الملفات التي نريد الالتزام التالي باستخدامgit add. في المثال أعلاه ، نستخدمgit add -uلأن ذلك سيوفر لنا الكثير من الكتابة ، فإنه يضيف تلقائيًا التغييرات إلى جميع الملفات التي تم تتبعها (الملفات التي يعرفها مستودع GIT بالفعل). بعد تشغيلgit add -u.
يمكن إجراء إعداد الخادم المباشر بواسطة أي من الطريقتين التاليتين.
الخيار الموصى به: SSH+GIT. هذا الخيار رائع بحتة ، إنه سريع وبسيط وسهل الاستخدام ويسمح لنا بتحرير الملفات على الخادم البعيد. على الرغم من أن القليل من الخوادم تدعم كل من SSH و GIT (يحتاج الخادم الخاص بك على حد سواء) - لكن الفوائد ضخمة. نوصي بالاستضافة مع Mediatemple لأنهم أيضًا رائعون ، لذا فهي تدعم هذه الميزة الرائعة النقية (خططهم رخيصة للغاية بالنسبة لما تقدمها ، ودعمه رائع ، ونظامهم مرن للغاية وقابل للتخصيص لجميع احتياجاتك) - مرة أخرى ، فهي رائعة. إذا كان الخادم الخاص بك لا يدعم SSH+GIT ، فهذا أمر جيد ، حيث يمكننا استخدام خيار الاحتياطي. دعنا نغطي كيف سنفعل هذا.
ستحتاج إلى تسجيل الدخول إلى الخادم الخاص بك عبر SSH (راجع دليل الخادم الخاص بك عن كيفية القيام بذلك).
بمجرد الانتهاء من ذلك ، ستحتاج بعد ذلك إلى cd في دليل مواقع الويب الخاصة بك (على سبيل المثال. public_html ).
يجب أن يكون هذا الدليل فارغًا أثناء قيامنا بتثبيت نظيف (إذا لم يكن فارغًا ، فأعمل ، وتفريغه). الآن بعد أن أصبح فارغًا ، نريد تشغيل الأوامر التالية:
curl -OL http://github.com/balupton/balcms/raw/master/cli
git init
git remote add origin {your git repos read/write url}
./cli init-existing; ./cli configure; ./cli install
Explanation: يجب أن تبدو هذه الأوامر مشابهة تمامًا لأوامر التثبيت المحلية الخاصة بنا ، على الرغم من وجود بعض الاختلافات. نبدأ بجلب CLI تمامًا مثل المعتاد ، على الرغم من أننا الآن نسمي
git init، فإن هذا يخبر بيئتنا بمعالجة الدليل الحالي كمستودع GIT. ثم ننتقل لربط دليلنا مع المستودع البعيد. أخيرًا ، ندير الأوامر./cli init-existing; ./cli configure; ./cli install. هذا هو نفسه./cli init-newكان من قبل ، ولكن هذه المرة./cli init-existing.
لقد انتهيت جميعًا الآن ، أنت موقع الويب الآن.
خيار العودة: استخدم نظام نشر الطرف الثالث. يتضمن هذا الخيار تسجيل حساب مع طرف ثالث ، وإعداد مستودع GIT الخاص بك معهم ، ومنحهم تفاصيل الخادم الخاصة بك ، وتحديد إعدادات النشر. إنه لأمر رائع ، ولكن يمكن أن تصبح مكلفة عند نشر مواقع متعددة ولا تسمح لك بتحرير الملفات على موقعك المباشر (بدلاً من ذلك عليك إجراء التغيير على موقعك المحلي ، ثم النشر). قد يستغرق الأمر أيضًا معرضًا للنشر (من بضع دقائق إلى بضع ساعات). إذا ذهبت إلى هذا الطريق ، نوصي بـ DeployHQ - نظامهم يعمل بشكل جيد للغاية ، ولديهم أسعار معقولة. ارجع إلى وثائق النظام المختار لكيفية استخدام هذا الخيار.
خيار سخيف: نقل الملفات يدويًا عبر FTP. والسبب في أن هذا الخيار سخيف ، هو أنه يرث مشاكل عدم استخدام أي عنصر تحكم في الإصدار - ينتهي بك الأمر بسرعة بالتناقضات بين الخادم المباشر ونسختك المحلية ، مما تسبب في عدم الاتساق وتصحيح الأخطاء والصيانة. يرجى عدم استخدام هذا الخيار ، إلا إذا كنت من الماسوشية. لن نغطي هذا الخيار.
ملاحظة: قبل النشر على الموقع المباشر ، ستحتاج إلى إضافة بيئة إنتاج إلى ملف config.php الخاص بك ، وإعداد قاعدة البيانات الخاصة بك لبيئة الإنتاج في ملف application/config/application.yml .
بمجرد أن نكون سعداء بنسخنا المحلية ونريد نشرها على الموقع المباشر ، يتعين علينا فقط تشغيل الأمر المألوف بالفعل ./cli deploy في دليل مواقع الويب لدينا.
بمجرد نشر تغييراتنا على مستودع GIT عن بُعد ، سنرغب بعد ذلك في سحب هذه التغييرات على خادمنا المباشر. هذا يعتمد على الخيار الذي اخترناه.
باستخدام خيار العودة (نظام الطرف الثالث): مع هذا الخيار ، قد يحدث النشر من مستودع GIT عن بُعد إلى خادمنا المباشر إما تلقائيًا ، أو قد نحتاج إلى تسجيل الدخول إلى نظامهم ونشر التغييرات يدويًا وانتظار وقت طويل جدًا.
باستخدام الخيار الموصى به (SSH+GIT): سنرغب في الحصول على SSH في خادم الويب الخاص بنا والقرص المضغوط في دليل المواقع الحية لدينا (كما فعلنا عندما نقوم بإعداد مستودع GIT). بمجرد أن ترغب في ./cli update الأمر ببساطة. سيؤدي ذلك إلى جلب جميع التغييرات الحديثة ، والتأكد من أن تكويننا محدث.
لترقية التطبيق الخاص بك إلى أحدث إصدار من BALCMS ، ستحتاج فقط إلى تشغيل ./cli upgrade في دليل التطبيق الخاص بك.
Explanation: ما سيفعله هذا هو جلب أحدث إصدار من BALCMS إلى فرع BALCMS ، ودمجه في فرع DEV الخاص بنا.
إذا كان لديك أي تعارضات ، فيمكنك استخدام git mergetool لفرزها.
بمجرد حل جميع النزاعات ، وذهبت الترقية بنجاح ، ستحتاج إلى تشغيل ./cli configure
أولاً ، شكرًا لك على اختيار هذا البرنامج لمشروعك التجاري القادم أو حتى مفتوح المصدر.
إذا كنت ترغب في إعطاء بعض القيمة إلى أولئك الذين يقفون وراء هذا البرنامج ، تمامًا كما أعطوا قيمة لك ، فيمكنك أن تساهم بالطرق التالية:
ترميز سعيد :-)