![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#31 |
Участник клуба
Регистрация: 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. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Что сейчас актуально, движки, 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 |