Компонентная модель

Nest

Новичок
Компонентная модель

Вопрос в следующем, как правильно организовать компонентную модель у себя на сайте, покаместь пришло в голову два варианта, все храним в папке components (темплейты, картинки, короч все файлы относительно компонента), или в папке components хранить только xml файл в котором будет указанно какие файлы компонента где храняться, а они будет лежать в разных папках, т.е. какринки в images модули в includes темплейты в templates, просто надоело куски дока вырезать делая с одного проекта другой, поэтому хочу все на компоненты перевести и делать инстал или анинстал компонента если нужно, потипу как в джумле.
 

TutanXamoN

Новичок
Как правильно не знаю. Опишу как сделал я.
Есть папка "Компонент".
В папке : скрипты
папка "img"
файл в котором указаны все пути "_name_.inc.php"
Для подключения компонента просто скидываю папку с ним и пишу :
PHP:
include("_name_/_name_.inc.php");
 

Nest

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

TutanXamoN

Новичок
Я и не говорю что у меня самый удобный и классный метод.
Поставленная тобой задача слегка противоречива:
1. Хочется чтоб всё было централизовано.
2. Хочется чтоб всё было красиво разложено по папочкам и не резало глаза.
З.Ы. Куски кода надоело резать всем и каждый выкручивается по своему.

Есть папочка "компоненты" в которой все хранятся - ИМХО достаточно удобно кинул одну папку и инклудь себе что хочешь
 

Nest

Новичок
TutanXamoN тут проблема в том что отдал сказал бы верстальшику "вот папочка темплейт и там все что относительно темплейта" и все, а так он будет искать, как ему в боксе который принадлежит компоненту Новости поменять булет?
 

TutanXamoN

Новичок
Это уже проблемы верстальщика:)
То есть если сказать верстальщику "вот папочка темплейт и там все что относительно темплейта" он ничего не искав сможет поменять булет?
Если да - хочу себе такого верстальщика.
 

jonjonson

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

Nest

Новичок
jonjonson спасибо за ответ, я тож считаю, что нужно чтоб каждая модель была независимая от другой и это правильно. Но вот попробовал создать такую модель и возникли следующие проблемы, может кто-то подскажет:

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


Неплохо было б, подсказать и на верный путь наставить или хотябы примерчиком подсказать, или может другую систему шаблонов юзать например пировкую?
 

jonjonson

Охренеть
Nest, вы действительно прочли моё сообщение? Просто есть сомнения...
Кстати, в смарти можно пути переопределять... Но это не ваш случай.
 

Nest

Новичок
jonjonson прочел, но наверное не совсем понял

-~{}~ 23.02.07 13:15:

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