أين يجب أن تذهب الأصول في مشروع كود إغنيتر؟

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

  •  05-07-2019
  •  | 
  •  

سؤال

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

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

المحلول

وعادة أضع المجلدات منفصلة في مستوى الجذر، لذلك أنا في نهاية المطاف مع بنية دليل مثل هذا:

/system
/css
/js
/img

ويبدو أن العمل بالنسبة لي - عند استخدام site_url(url)، وURL فإنه يولد هو من جذورها، بحيث يمكنك استخدام site_url('css/file.css') لتوليد عناوين لصفحات الأنماط الخاصة بك وغيرها

نصائح أخرى

وشخصيا، أنا مزق الدليل application من الدليل system وجعلها أخ لsystem. وبعد ذلك إنشاء دليل المشروع في public_html (www) حيث أنتقل index.php وتخزين الأصول العامة بلدي.

لنفترض المشروع الذي نعمل على ما يسمى projekt. في الدليل الأصل إلى public_html (www) خلق دليل يسمى CISYSTEM، وداخل هذا الدليل إنشاء الدليل من الإصدار الذي تستخدمه، 202، 210 الخ.

/CISYSTEM
    /202
    /210
    /another_CI_version
/projekt_application
    /models
    /views
    /controllers
    /private_assets
/public_html
    /projekt
        index.php
        .htaccess
        css
        img
        js
        lib

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

وهذا كله خلط دليل يتطلب منك تغيير مسار عدد قليل من الأشياء بالرغم من ذلك. لحسن الحظ، كود إغنيتر يجعل من السهل - كل التغييرات التي يمكن إدخالها في ملف index.php

فتح index.php وإعادة توجيه بضعة أشياء:

والتغيير: $system_path = 'system';

ل: $system_path = '../../CISYSTEM/210';

والتغيير: $application_folder = 'application';

ل: $application_folder = '../../projekt_application';


وبالإضافة إلى ذلك، أرى الكثير من الناس يتحدثون عن استخدام site_url() في إجابات أخرى. أوصي وسيلة أقل مطول استخدام site_url() ... لم يكن لديك أن نسميها في كل مرة إذا كنت الاستفادة من عنصر <base> HTML ل:

و<base href="<?= site_url();?>">

وتشمل فقط أنه في <head> التطبيق الخاص بك ويمكنك الاتصال حدات التحكم الخاصة بك مباشرة ... كما في:

و<a href='controllername/functionname'>Some Action</a>

وهتاف

وأنا أكره وجود الكثير من الدلائل على مستوى الجذر، ولذا فإنني استخدام / العامة واستخدام هتكس إعادة كتابة / مخطوطات ل/ الجمهور / مخطوطات وهلم جرا.

وأجد أنه من الأفضل للحفاظ على الأصول على مستوى الجذر. يمكنك استخدام <?=base_url()?> أن أردد الجذر الكامل للموقع. في ملف التكوين، تقوم بإعداد جذر الموقع. هذا البيان فقط يردد ما بها.

وبسبب هذا، يمكنك استخدام يتضمن مثل هذا:

<link href="<?=base_url()?>/css/style.css" rel="stylesheet" type="text/css" />

وفي أي مكان في التعليمات البرمجية الخاصة بك، وسوف لا يزال الحصول على http://example.com/css/style . المغلق .

وBASE_URL () / المغلق / name.css

ولكي تتمكن من استخدام المساعد SITE_URL (رابط) في هذه الطريقة التي يجب أولا تكوين أباتشي mod_rewrite و(أو ما يعادلها) لإزالة جزء index.php من URI.

وإلا يضيف طريقة SITE_URL index.php إلى URL التي من المرجح أن المسمار المسارات إلى الأصول الخاصة بك إذا كنت قد حصلت عليها في دليل قاعدة مثل أعلاه.

وفيما يلي الوثائق كود إغنيتر على إزالة index.php من URI:

http://codeigniter.com/wiki/mod_rewrite/

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