Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2015, 14:12   #31
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,692
По умолчанию

Доброго времени суток!
К сожалению javascript дается мне очень туго. Но я не унываю. =)

1. Настроил gulp для сборки less, js и вызов phpunit.

2. Привязал phpunit. И даже добавил один тест =), правда столкнулся с проблемами, т.к. изначально я про тесты ничего не знал, то пришлось поставить несколько костылей, чтобы всё заработало, благо была заготовлена mock функция для окружения(параметры запроса, данные сервера, и т.д.), но хотелось бы привести здесь все в порядок. Тесты просто незаменимы.

3. Реализовал отношения между моделями OneToOne, OneToMany(ManyToOne), ManyToMany + для каждого отношения кроме ManyToMany есть возможность задать связывание моделей через третью таблицу. ManyToMany доступно только связывание через третью таблицу.

4. Определил mutator для отношений. Теперь если у меня есть сущность статья ($article), то чтобы связать ее с тегом ($tag), достаточно написать $article->tag = $tag;
Если отношение многие к одному, то имеющийся тег у статьи заменится на присвоенный (точнее перенаправится связь), если многие ко многим, то добавится новая связь (при условии что статья еще не связана с этим тегом). Точно также можно связать статью с уже имеющимся тегом передав массив $article->tag = ['id' => 1];, и создать новый тег и связать со статьей $article->tag = ['title' => 'новый тег']; и удалить связь с тегом( id=1 ) $article->tag = [1 => ['id' => 0]];, тоже самое и для массивов $article->tag = [['title' => 'новый тег 1'], ['новый тег 2']]; - создаст 2 новых тега и свяжет со статьёй.
Также это работает и в обратную сторону: $tag->article = $article; и т.д.

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

6. Страницы, скелеты, компоненты, слоты и т.д. всё работает.

7. Несколько готовых миксинов типа: Created, Changed, Position, Level, Tree, Access, Dictionary ...

8. Интересный способ загрузки файлов. Для начала я преобразую массив $_FILES и объединяю с массивом $_POST. Далее работает пункт 4: $article->preview = ['tmp_name' => '...', 'size' => '...', 'error' => '...', 'type' => '...'];

9. Разобрался с composer.

Сейчас в проекте развелось очень много грязи. Это не постоянство в составлении вспомогательных имен модулей, компонентов.
Отсутствует построитель форм. Компоненты для админки и все формы верстаются отдельно.
Нет дизайнера страниц. Для установки компонентов приходится писать "app.component.add({component: 'page_title', page_id: page.id}, 4);" где 4 это id слота.

Хотелось бы наконец разобраться с js фреймворками и view'хами типа backbone, react, angular и т.д. но как-то всё это слишком сложно.

Последний раз редактировалось Kostia; 27.02.2015 в 17:45.
Kostia вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что сейчас актуально, движки, CMF и так далее. dertsb WordPress и другие CMS 1 12.12.2013 07:25
«Сайт под ключ» на cmf Drupal manachud Фриланс 0 14.09.2011 21:00
Буду делать Аркаду 2D, ищу помощников CyberOrcX Gamedev - cоздание игр: Unity, OpenGL, DirectX 46 17.06.2009 09:48
Набираем помощников. Игра SanCIty microran Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 11.09.2007 19:42
Набираем помощников. Игра SanCIty microran Gamedev - cоздание игр: Unity, OpenGL, DirectX 0 31.08.2007 17:45