Airily Skeleton App

Выкладываем свои наработки
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Airily Skeleton App

Сообщение yiijeka »

Про glod я что-то тоже слышал, но хз, посмотрю раз так :)

Ngix, если вы имеете в виду, пробовал, но так как мало опыта с ним, не получилось на нём запустить командные команды exec. Буду рад любой помощи.

Чем, конкретно не нравиться структура? Я ж просил любую критику. Если просто не нравиться, тогда да можете мимо ;) Мне кстати тоже не нравятся папки www во фронте и бэки, но пока не придумал куда их лучше засунуть.

Не могу понять, где я говорил, что модули нужно писать для конкретного проекта? С помощью композера закачать ЛЮБОЙ zip модуля и он будет работать, ЕСЛИ ОН НЕ ЗАТОЧЕН ДЛЯ КОНКРЕТНОГО проекта. Наоборот этот композер заставляет писать "идеальный" в понимании модуль, который потом можно обычным копированием перенести в любимый ваш проект, с пушистой структурой ;) Единственное ограничение - это имя zip файла, и если нужны таблицы с данными в бд, то их помещают в migrations/миграции. И + в том, что человеку не сильно разбирающемуся с запуском консольных команд, проще нажать одну кнопку, чтобы контролировать установленные модули :)

Спасибо, всеравно ;)
Аватара пользователя
lancecoder
Сообщения: 2532
Зарегистрирован: 2012.06.26, 17:16

Re: Airily Skeleton App

Сообщение lancecoder »

пример - я ставлю юзер модуль, он зависит от mysql db, т.е. при установке модуля подтягиваются модели? верно? или же модели будут в самом модуле? тогда как с другими ендами?
я ничего обидно не хотел сказать, просто замах большой, но пока не оправдан, и тут композер я считаю не совсем уместен, хотя, как я понимаю мы ждем его в Yii2, но по по сути он будет тянуть весь фреймворк целиком в vendor. Могу и ошибаться. Суть зависимостей которые нужно создать при реализации такого плана проекта это как минимум я считаю чтобы был выбор. Снова пример - я ставлю экшн авторизации, он автоматом тянет контроллер где есть логин\логаут, модуль, который в свою очередь тянет свои зависимости- к примеру компонент для работы с дб, необходимую модель, либо же это решается путем навешивания поведений через какойто универсальный адаптер. Фишка должна получится в чем - я посылаю запрос install user-mongodb/auth. Опять же чуть отклонюсь, если есть инстал, то нужно и работу конфига реализовать должным образом, где то хранить все эти связи что уже подтянуты, чтобы не повториятся, ну и удаление, переустановка и тому подобные вещи. Думаю что вам надо почитать про пакетные менеджеры, про (не знаю как правильно называются) кольцевые и древовидные зависимости и тогда желание связать композер думаю отпадет :) все без и чистое имхо. П.С. сам примерно тоже самое собираюсь делать, но для меня главным критерием здесь является работа в консоле. Как я это вижу:
/framework/
/installer/command/InstallCommand.php //extends WebappCommand
/installer/yiic.php

/installer/$ php yiic install app front

приложений я насчитал 5 типов -
фронт (где авторизация не обязательна)
бек (онли админ)
консоль для какихто кроновых задач
апи
воркер для геармана

многабукав наверно уже, но все же может ктото еще читает :)
структуру я предпочитаю ту что бойлерплейт (сори за транскрипцию) только чуть видоизмененную
/apps/front
/apps/back
/apps/worker
/apps/api
/common/command
/www <- public (assetst, image, css, index.php, backend.php, e.t.c)
комон тут по сути это консоль, но так же в ней лежат все общие какието вещи

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

Рад любой критике, еще раз повторюсь это мое имхо
Аватара пользователя
porcelanosa
Сообщения: 570
Зарегистрирован: 2010.03.16, 04:31
Откуда: Москва

Re: Airily Skeleton App

Сообщение porcelanosa »

ну у бойлерплейт так и есть -
Там можно добавить сколько угодно приложений - т.е. по умолчанию у них 2 приложения front и back - а дальше можно и front2 - и front-en добавить к примеру.
Бесит меня там, что надо лезть в конфиг апача - и прописывать для каждого приложения виртуальный хост и настройки
И к примеру у меня была проблема - я сохраняю картинки через фронт - а потом мне они нужны и в бэкэнде - Логично хранить в коммон - потому что иначе я их не получу
Пришлось создавать дополнительный домен i.site.ru под изображения.
mcintosh-club.ru - первый мой сайт с использование Yii //
Акустика Sonus Faber Hi-End класса//
Необрезная доска и другие пиломатериалы
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Airily Skeleton App

Сообщение yiijeka »

пример - я ставлю юзер модуль, он зависит от mysql db, т.е. при установке модуля подтягиваются модели? верно? или же модели будут в самом модуле? тогда как с другими ендами?
Я модуль воспринимаю как самодостаточную единицу. Очень часто просматривая тот или иной проект, нахожу модуль, пытаюсь себе установить, а он не ставится. А всё потому, что он требует кучу компонентов и моделей, которые лежат просто в папках protected/components ... Так какого этот модуль называется модулем, если он не самодостаточен? (философский вопрос ;) А используя composer, как бы заставляет закачал zip и он должен работать и быть сразу доступным, без шаманства. Определив конкретные правила для таких zip, можно переделать готовые пару модулей, чтобы потом можно было быстро создать тот же простой блог или витрину магазина....
Опять же чуть отклонюсь, если есть инстал, то нужно и работу конфига реализовать должным образом, где то хранить все эти связи что уже подтянуты, чтобы не повториятся, ну и удаление, переустановка и тому подобные вещи.
Composer создаёт сам файл настройки, папку кэша и др. В этом и прелесть его использования. Сейчас только zip модули можно и то они помещаются в backend. В будущем хочется сделать и для url путей, и выбор места установки....
Прочитал бегло про пакетные менеджеры =), "кольцевые и древовидные зависимости" не нашёл. Зачем мне делать велосипед с кучей классов, создавая пакетный менеджер, если composer.phar все функции пакетного менеджера выполняет?
Фишка должна получится в чем - я посылаю запрос install user-mongodb/auth.
Нужно очень много манны ;)
/www <- public (assetst, image, css, index.php, backend.php, e.t.c)
Меня вот мучает вопрос, плохо ли хранить всё от бекэнда, фронтенда и другое в одном месте, именно так?
структуру я предпочитаю ту что бойлерплейт (сори за транскрипцию) только чуть видоизмененную
Структура хорошая, но блин, опять же вопрос с совместным использование моделей, контроллеров.... Нормального мануала как используется всё это во разных частях (бэк, фронт) приложения я не встречал. И поэтому получается не нужно это всё и лучше использовать yii webapp и не мучатся, но хочется же все равно разделения %)

@porcelanosa
Поддерживаю, по этому поводу уже писал вам: что Yiibolierplate как бы подразумевает строгое разделение на backend и frontend. Т.е. код из бэка ничего не знает про код из фронта. Поэтому тут у меня и вопрос "плохо ли хранить всё от бекэнда, фронтенда и другое в одном месте, именно так?"
Ramazan
Сообщения: 3
Зарегистрирован: 2012.01.11, 09:34
Откуда: Воронеж
Контактная информация:

Re: Airily Skeleton App

Сообщение Ramazan »

пример - я ставлю юзер модуль, он зависит от mysql db, т.е. при установке модуля подтягиваются модели? верно? или же модели будут в самом модуле? тогда как с другими ендами?
Я модуль воспринимаю как самодостаточную единицу. Очень часто просматривая тот или иной проект, нахожу модуль, пытаюсь себе установить, а он не ставится. А всё потому, что он требует кучу компонентов и моделей, которые лежат просто в папках protected/components ... Так какого этот модуль называется модулем, если он не самодостаточен? (философский вопрос ;) А используя composer, как бы заставляет закачал zip и он должен работать и быть сразу доступным, без шаманства. Определив конкретные правила для таких zip, можно переделать готовые пару модулей, чтобы потом можно было быстро создать тот же простой блог или витрину магазина....
Ссылка на "самодостаточную единицу" правильная, только вот философский вопрос не совсем правильный.

На указанной странице в самом первом абзаце есть фраза "модуль не может использоваться сам по себе — только в составе приложения.", а модель User (id, email, password, salt...) расположенная в app/models или common/models является частью этого приложения, следовательно UserModule либо идёт своим путём и содержит модель UserOther (id, email, password, salt, firstname, lastname, registered, activated...), либо в его состав входит модель UserProfile (user_id (fk), firstname, lastname, registered, activated...) которая будет связана с "главной" моделью User (можно даже в UserModule::init() добавить User::model() -> addRelation('profile', array(...))), но об их [s]интимной[/s] связи, никто кроме UserModule ( и вложенных в него модулей ) не должен знать.
Если же на сайте, за пределами UserModule, выводиться информация, которая доступна только через UserProfile, то и эту модель надо переместить в app/models или common/models, если и та и другая модель нигде кроме как в UserModule не используется, то их смело можно кидать в директорию моделей этого модуля.

Composer тут лишний, т.к. если NewsModule используется модель Comments, но при этом комментарии больше нигде не отображаются, то эта модель должна поставляться с модулем, если нет то уже при установке модуля новостей, она должна быть в глобальной директории.
Ответить