Сплит php-контент в нескольких файлах - PullRequest
5 голосов
/ 09 ноября 2010

Понятия не имею, есть ли для этого технический термин, поэтому я не нашел ничего ни в гугле, ни на этом сайте.

Мой друг, который годами создавал сайты и на самом деле создалБизнес использует довольно уникальную (для меня) систему.

Он разбивает свою страницу на 3 части: верхний и нижний колонтитулы.Разбивает их на 3 файла, а затем включает верхний и нижний колонтитулы в основной странице, оставляя только это: (пример)

<?php   include_once "Constants/Header.php";    ?>

        <div id="Container">
            <div id="Header">
                HEADER
            </div>

            <div id="Menu">
                <ul id="Nav"> 
                    <li>Menu item</li>  
                    <li>Menu item</li> 
                    <li>Menu item</li>  
                    <li>Menu item</li> 
                    <li>Menu item</li>  
                    <li>Menu item</li> 
                </ul> 
            </div>

            <div id="Body">

            </div>
        </div>

<?php   include_once "Constants/Footer.php";    ?>

Является ли хорошей практикой кодирование сайта таким образом?-если так, почему?И последнее, но не менее важное: вы кодируете свои страницы таким образом?

Ответы [ 6 ]

4 голосов
/ 09 ноября 2010

Как уже упоминали несколько других, разделение вашего кода на несколько файлов PHP может помочь вам избежать ненужного дублирования вашей работы.Тем не менее, еще большее преимущество, которое может выпасть из этого, заключается в том, что оператор include является шлюзом, обеспечивающим реализацию такой архитектуры, как Model-View-Controller .
Используя MVC, вашкод разделен не только с точки зрения частей страницы, которые видит пользователь (верхний колонтитул, нижний колонтитул, тело и т. д.), но и с точки зрения ответственности.На высоком уровне «Модель» управляет данными и бизнес-логикой, «Вид» обрабатывает пользовательский интерфейс (включая отображение данных из модели), а «Контроллер» обрабатывает запросы и взаимодействует с соответствующими частями Модели.
Я ни в коем случае не эксперт по MVC, но преимущества здесь огромны.Каждый из компонентов может быть проверен индивидуально.Разработка компонентов со слабой связью помогает избежать повторения и способствует написанию кода для повторного использования.Существует ряд фреймворков веб-приложений PHP , использующих архитектуру MVC, многие из которых находятся в свободном доступе (например, CodeIgniter ).
По общему признанию, MVC не обязательно "тот"верный путь »- в случае вашего друга реализация подобной архитектуры может выходить за рамки того, что он хочет сделать.Но что касается вашего первоначального вопроса (я полагаю, в окольном смысле), оператор include может (при правильном использовании) быть очень мощным и полезным инструментом.

3 голосов
/ 09 ноября 2010

Чрезвычайно полезно (для вас как разработчика и вашего преемника) использовать include и разбивать ваши файлы PHP. Таким образом, если вам нужно, например, изменить нижний колонтитул, вам нужно всего лишь изменить один файл нижнего колонтитула, и эти изменения будут отражены по всему сайту.

И да, я всегда использую include.

2 голосов
/ 09 ноября 2010

Это не хорошо, но обычная практика. Немного лучше было бы 3 файла, один для верхнего колонтитула, один для нижнего колонтитула, а затем один (обычно: index.php), который включает в себя верхний и нижний колонтитулы и содержимое.

<?php
$active_page = $_GET['page'];
require_once('header.php');
require_once($active_page);
require_once('footer.php');
?>
2 голосов
/ 09 ноября 2010

Я не знаю о хорошей практике, но если ваш сайт использует одинаковый верхний и нижний колонтитулы на всех страницах, то гораздо эффективнее включить код один раз, чем копировать и вставлять один и тот же код на каждую страницу.

Будущие дополнения к вашему меню должны быть добавлены только один раз, и каждая страница видит изменения.

1 голос
/ 09 ноября 2010

Это не хорошо и не плохо.

Зависит от того, что вы хотите сделать. Если вам нужен простой, как может быть, ограниченный набор веб-страниц, этого достаточно. Проблемы начинают появляться, когда вы хотите отдельную таблицу стилей для каждой страницы. Затем некоторые страницы используют скрипт, другие включают другой скрипт. В этих случаях заголовки будут отличаться от страницы к странице (они МОГУТ быть одинаковыми, но не рекомендуется включать файлы, которые вы не используете).

Тогда, если вы создаете какое-то взаимодействие на сайте, это просто не сработает. Это не способ программирования. Там нет места для реального кода PHP. Вы, конечно, можете включить PHP-код, но смешивать PHP и HTML таким способом крайне вредно.

Лучший способ заставить PHP работать на вас в этом случае - это использовать какую-то платформу или CMS. Если вы хотите создать веб-сайт со страницами с небольшим взаимодействием (например, веб-сайт для компании, некоторые презентации, новостной сайт, блог) - используйте CMS, такие как Wordpress, Joomla, Drupal, DLE. Если вам нужно что-то более сложное, например, какое-то веб-приложение на основе PHP, используйте фреймворки MVC, перейдите на фреймворк Zend или что-то более простое и компактное (здесь я чрезвычайно субъективен), например CakePHP, CodeIgniter или Symfony.

1 голос
/ 09 ноября 2010

Ну, это довольно простая техника в PHP. Это позволяет вам изменять верхний или нижний колонтитулы в одном месте и изменять их на каждой странице сайта, используя их.

Он может быть использован для большего количества целей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...