Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Организация и структура проекта на php

11K
07 апреля 2008 года
NeverBC
40 / / 27.08.2006
Я совсем недавно изучаю язык и web-программирование, уже достаточно хорошо всё получается, но есть одна проблема. Сразу говорю, что ООП мы сейчас не касаемся, берём php как структурный язык. Вот пишется проект на php/mysql/js. Какой проект - не суть важно, их много. Так вот, у меня возник вопрос - как правильно структурировать всё это дело? Сейчас у меня получается что-то вроде вёрстки (html файл), в котором в нужные места вместо статики стоят вызовы функций. Это же неправильно? Как избавиться? Я даже не очень могу сформулировать вопрос, потому что чётко не знаю, что мне нужно. Мне нужна правильная структура php файлов. У меня что то вроде инклуд хедер, хтмл код со вставками пхп, инклуд футер. Тоже хрень какая-то. Что почитать по теме?
8
07 апреля 2008 года
mfender
3.5K / / 15.06.2005
Поинтересуйся шаблонизаторами. Самый популярный - Smarty. Вот ТУТ можешь ознакомиться с лучшими представителями.
11K
07 апреля 2008 года
NeverBC
40 / / 27.08.2006
Про это в курсе, занимаюсь. Но интересует следующий по целесообразности вариант. Дело в том, что проект уже готов, но он представляет собой то, что я уже сказал. Всё работает прекрасно, но мне не нравится внутренняя структура. Хочется чёткости и возможности развития. Можно ли как то улучшить, относительно того, что имею я?
8
07 апреля 2008 года
mfender
3.5K / / 15.06.2005
Ну почему же не правильно? И так хорошо, и эдак. Твой подход хорош своим быстродействием, хотя и в ущерб читабельности кода.
11K
07 апреля 2008 года
NeverBC
40 / / 27.08.2006
То есть в целом это нормально, не считается извращением, так делают? Не т ли каких нибудь компромиссов, чтобы в целом подоход оставить тот же, а читаемость всё ж повысить?
8
07 апреля 2008 года
mfender
3.5K / / 15.06.2005
Имеют место под солнцем несколько подходов к этому вопросу. И тут уж кто во что горазд. Одно могу сказать, что самое отвратительное, это когда посреди HTML вписаны PHP-процедуры, да ещё повторяются постоянно. Это говорит только об непродуманности и неподготовленности.

Сам я, уже испробовав на себе очень многое кроме цианида, могу сказать, что придерживаюсь такой схемы:

1. Функциональная часть. Своего рода библиотека, framework, в большинстве случаев подходящая под различные нужды без каких-либо изменений.
2. Логика конкретного приложения. Т.е. скрипты, обеспечивающие конкретную задачу и подготовку данных для вывода в поток.
3. Шаблоны, непосредственно формирующие выходной поток.
4. Вход-выход, настройки и т.п., через что происходит общение конечного получателя (браузера или ещё чего) со вторым и третьим вышеперечисленными.
11K
08 апреля 2008 года
NeverBC
40 / / 27.08.2006
Ну у меня есть нечто вроде "библиотеки". Это файлик functions.php. Там есть не только отдельные функции, которые можно конфигугировать в зависимости от поставленной задачи, но и функции, который нужны конкретно для каких то-целей, комбинирующие в себе предыдущие.

Но тем не менее всё это дело вставлется напрямую в html. Ну т.е. html выглядит так.

...
<? function(); ?>
...
<? function(); ?>
...
<a><? get_link(); ?></a>
...

Последнее - для примера. И я вообще себе плохо представляю, как можно сделать иначе. Ну разве что сделать папочку html файлов, где вместо обрабатываемых мест поставить что-то вроде %link и т.д., то есть обозначить их внутренними переменными, а в скриптах брать шаблон и проводить нужные замены - такой вариант есть? Я имею ввиду подготовку всех данных для вставки в шаблон, а потом замену %blablabla на код.
11K
08 апреля 2008 года
NeverBC
40 / / 27.08.2006
Я выше привел что-то вроде ещё одного подхода. Если и он не подходит, могли бы как то конкретно описать нормальный подход? Я твои пункты понял, но без конкретики сложно.
11K
08 апреля 2008 года
NeverBC
40 / / 27.08.2006
В принципе, это и получается шаблонная структура, но не готовый вариант, а так, по-домашнему. :) Просто, с точки зрения php-программирования - такой вариант имеет право на жизнь? Я планирую так. Есть файл index.html, в котором у меня идёт только html код и элементы {element}. Файл index.php будем брать index.html и делать необходимые преобразования. Ну, допустим.

Раньше было так:
...
<?=get_link(); ?>
...

Теперь так:
...
{link}
...

При этом в index.php нечто вроде:
$tpl=ereg_replace("{link}", get_link, $tpl);

Я прав? Так нормально? Поправьте где-то.

И ещё вопрос. Возникла мысль о нужности вынесения в небольшие *.tpl элементов вёрстки, которые повторяются много раз. Чтобы в коде не использовать хтмл тэги вообще, а только вставлять нужные *.tpl. Ну а в хтмл при этом не будет ни одного html-тега.
15
08 апреля 2008 года
shaelf
2.7K / / 04.05.2005
Загляни в раздел "книги", там много чего интересного. Так же посмотри по форуму, структура уже обсуждалась. Нет хорошей или плохой структуры, есть подходящая под данный проект и не подходящая.
11K
08 апреля 2008 года
NeverBC
40 / / 27.08.2006
Я понимаю про подходящую и не подходящую, мысль ясна.
Меня просто интересует сейчас вопрос - делают ли так, как я написал выше? Мне кажется это подходящим для моего проекта, но я не уверен, что так вообще делают, т.к. опыта мало, да и вообще чужих умных проектов изнутри почти не видел.
11K
08 апреля 2008 года
NeverBC
40 / / 27.08.2006
Я сейчас очень внимательно прочитал http://www.codenet.ru/webmast/php/Templates-About.php. Очень полезная статья и мне данный подход понравился. Не думаю, что там стали бы постить, если бы это было неверно с точки зрения организации и структуризации. Остановлюсь на этом варианте... Всем большое спасибо, что откликнулись и помогли, несмотря на неточную постановку вопроса.
11K
08 апреля 2008 года
NeverBC
40 / / 27.08.2006
Upd. В чистом виде указанный там метод не очень, но мне главное было ухватить мысль, буду переделывать под себя. :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог