لن ينكر أحد أن Composer أداة ملائمة إلى حد ما ، وأن هناك مزودي خدمة استضافة مجانية أو رخيصة لا توفر أي وحدة تحكم أو أداة مضمنة للعمل مع Composer. هذا هو بالضبط نوع المكدس الذي صادفته. حسنًا ، كما تم توريث Jedi ،
تتم إضافة
البائع على الفور إلى
.gitignore حتى لا يتكدس في مخزونه ولا يدفع المكتبات إلى جيئة وذهابا.
أول ما تبادر إلى الذهن هو جعل البرنامج النصي يمكن الوصول إليه من الويب ، والذي يمكن سحبه في الوقت المناسب وسيعمل على تحديث التبعيات أو تثبيتها.
للقيام بذلك ، نحن بحاجة إلى القيام ببعض التلاعب.
1. لتثبيت الملحن محليًا ،
نحتاج إلى تنزيل composer.phar .
2. إنشاء مجلد حيث سيتم تفكيكه (فليكن
var ).
3. إنشاء
composer.json (حسنا ، حول هذا واحد وأعتقد أنك تعرف بالفعل إذا كنت تعمل مع الملحن).
4. حسنًا ، قم بإنشاء البرنامج النصي نفسه للعمل مع الملحن من الويب (فليكن
composer.php ).
لذلك لدينا هيكل موقعنا في المستقبل:
الملحن. فار نفسه سيكون على النحو التالي:
<?php use Composer\Console\Application; use Symfony\Component\Console\Input\ArrayInput; use Symfony\Component\Console\Output\StreamOutput;
وإذا كنت رجل سعيد. بعد استدعاء البرنامج النصي ، سيتم توسيع مجلد
البائع .
لكنني لم
أتحول بهذه الطريقة) أول شيء
تخلّى عن خططي هو وضع
phar.readonly = في
php.ini ، وكما قد تفكر في استضافة مجانية ، لا يمكنك تعديلها عادةً. ثم بدأت أبحث عن الحلول.
أول شيء جربته هو إنشاء
user.ini والذي سيؤدي إلى تخطي الإعدادات في
php.ini ، وقد عمل على الجهاز المحلي) ولكن في الاستضافة تم طعن هذه الوظيفة.
ثم حاولت استخدام خدعة أخرى. إعادة تسمية
composer.phar إلى
الملحن فقط ، والنتيجة هي نفسها. عملت على الشبكة المحلية ، ولكن ليس على الاستضافة.
بعد ذلك ، ومع ذلك ، بدلاً من البرنامج النصي ، اضطررت إلى فك حزم الملفات محليًا إلى
var وتحميلها على الخادم.
يجدر أيضًا إغلاق البرنامج النصي بترخيص ، حتى لا يطلق عليه جميع أنواع الأشخاص. أيضا في الإصدار الأخير من البرنامج النصي ، أضفت اختيار الأمر من خلال المعلمات.
<?php use Composer\Console\Application; use Symfony\Component\Console\Input\ArrayInput; use Symfony\Component\Console\Output\BufferedOutput; use Symfony\Component\Console\Output\OutputInterface;
وأيضًا ، لا يضر بإضافة قاعدة إلى
.htaccess لإعادة توجيه رأس التفويض (في حالة CGI) وإعادة التوجيه إلى HTTPS ، نظرًا لأن التفويض يترك بشكل واضح.
RewriteEngine On # CGI, , RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # HTTPS, RewriteCond %{HTTPS} off RewriteCond %{HTTP:SSL} !=1 [NC] RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=302,L]