Это всего лишь результат непонимания принципов паттерна. Кол-во таких постов такое-же как и кол-во любых других вопросов. Если так разбираться то в пхп многое реализовано тоже совсем не логично, потому-что разные расширения писали разные "конторы". В основном это заметно в стандартных функциях, взять обработку строк : где-то есть приставка str_, где-то просто str, а где-то и вовсе нету ничего. Пхп по сравнению с другими языками по своему показывает какие-то ключевые моменты, в том числе и ООП.
Ты вообще даже не пытаешь парировать, точней пытаешься только переводя темы в сторону заказчиков, разработчиков которые не виноваты, что юзают MVC т.к он в подарок от фреймворка достался. Просто попытайся уже признать, что MVC и шаблонизаторы имеют право на существование и мы закончим этот безсмысленный спор. Пофигу какие шаблонизаторы, с каким-то своим синтаксисом или тупо extract + include. Это не суть.
У меня начинает складываться впечатление, что ты просто тупо не хочешь принять, то, что MVC достаточно неплохой паттерн, но вот за, что ты его так ненавидишь я понять пока не могу.
Я хз что такое ansi. Откройте файл каким нибудь notepad++ или чем нить похожем, там можно будет сменить кодировку файла, если у вас сайт windows-1251 то и файлы нужно сохранить в этой кодировке
Кто там чем управляет это не суть. - У меня есть аргументы : Например, если бы паттерн MVC, был действительно такой ммм слово не могу подобрать, ужасный? Раз МВЦ такой ужасный почему его используют многие программисты (в вебе), давно уже выявлены все минусы этого паттерна, поэтому появился HMVC, но в списке этих минусов, про пятую ногу собаки как вы выразились однажды нет не слова. Это скорей тема холиварная и каждый останется при своем мнении. Я просто серьезно думаю, что вы вряд ли умнее всех этих людей которые разработали огромное количество гигантских ресурсов в вебе используя MVC.
Ну с шаблонизаторами абсолютна та-же песня. Это просто способ хранить HTML код отдельно, а логику отдельно, поэтому есть шаблоны и шаблонизаторы. Говорить что вариант неприемлем топиккастеру не самая лучшая идея. Он задает конкретный вопрос : "Как написать?", а не просит вас высказать ваше мнение о всей этой затее и о том что пхп сам по себе шаблонизатор. Я считаю, что шаблоны тоже имеют право на существование, они так-же есть в зенде и других фрейворках, наверное во всех CMS, а вы тут заявляете буквально, что все те люди которые используют шаблонизаторы умственно отсталые и у них, я цитирую : "птичий язык" и в добавок ко всему это программирование с извращением. Ах, если бы только было в моих силах устроить вам очную ставку с разработчиками Zend и остальных фреймворков с MVC чтобы вы с глазу на глаз выяснили кто тут прав, а кто птичий язык и извращенец.
MVC имеет право на существование. Это 100 процентов. Или зачем программисты которые писали большенство фреймворков(kohana(hmvc помойму с 3 версии), ci, zend .. ) включили возможность создания приложения с использованием MVC в свои творения??? Или для тебя эти люди не авторитет?
Мы - это мы все тут ))) Да я бухой, братан, без обид давай. Я просто высказал, то, что заметил. Я не хотел обидеть.
Ты просто реально слишком часто отзываешься на такие темы постами в которых мысли кроме как: "MVC - вата, шаблоны - дно" по сути нету. (Добавление)
DeepVarvar пишет:
Сколько, сколько обращений к диску, говоришь? Не понял
А еще бывает дисковая квота на хостингах...
fopen
fread - раз,
fwrite - два.
Дальше уже готовая страница будет загружаться из папки с кешем и fopen and fwrite не сработают.
extract(array(...));
include_('cache/' . md5($filename) . '.tmp');
Ну ты для начала всё продумай как у тебя, что работать будет.
fopen - открываешь, fread - считываешь всё ( переменные php $ не обработаются если использоваться fopen) и сохраняешь в переменную $file_content = fread(..), далее уже $file_content = str_replace($META_TAG_NAME // {CONTENT или что у тебя там}, тут опять контент нового файла или контент который должен будет заполнить, $file_content);
Самое разумное сделать класс Template и всё вышеописанное разбить на методы.
Далее когда у тебя все твои мета тэги заменил str_repalce полученную переменную просто сохранить в какой нибудь файл fwrite('/cache/' . md5($page_name) . '.tmp', $file_content);
А далее в самом начале загрузки шаблона, чтоб каждый раз не "компилировать" его таким образом сделай проверку, есть ли нужный файл в папке кеша, если есть то открывай из кэша, если нет компилируй и сохраняй.
Тебе не говорят что надо отказаться, тебе говорят что шаблонизатор уже существует готовый - называется PHP
Я открываю каждый раз новые темы где ты засветиться успевашь и всюду у тебя два нарекания, это - использование шаблонизатора (т.к пхп сам шаблонизатор), а второе это использование MVC ( т.к он для веба как собаке пятая нога ) - Ниче личного, но мы уже поняли давно твою позицию.
Я бы сначало открыл шаблон через fopen, затем заменил то, что нужно через str_replace (без всяких include тут ессно), потом сохранил бы полученный результат уже после обработки str_replace в файл в папке cache, а открывал бы его уже через include и extrack..
Ессно проверка на существование файла в кэше, если false то заново "скомпилировать" его опять через str_replace и сохранить.
Такая конструкция даст возможность и делать любые тэги по типу {CONTENT} и стандартные операторы пхп в шаблоне :
Обратите внимание, что PHP не кэширует информацию о несуществующих файлах. Так что если вы вызовите file_exists() на несуществующем файле, она будет возвращать FALSE до тех пор, пока вы не создадите этот файл. Если же вы создадите файл, она будет возвращать TRUE даже если затем вы его удалите.