Привет, Гость!
Главная
Вход

Последняя активность

Форум / JohnCMS / Инструкции
Поиск
  Инструкции по JohnCMS 7
1 2 >>
PaRtiZzaN PaRtiZzaN [Off] [#] (20.02.2017 / 13:36)
¯\_(ツ)_/¯
Давайте соберем готовые ответы на вопросы с разных тем, что бы люди не спрашивали по сто раз одно и тоже.

Как создать новую страницу
Подключаем модули контейнера
Изм. PaRtiZzaN (20.02.2017 / 14:33) [2]
PaRtiZzaN PaRtiZzaN [Off] [#] (20.02.2017 / 13:37)
¯\_(ツ)_/¯
Создание новой страницы

  1. <?php define('_IN_JOHNCMS', 1);
  2. require($_SERVER['DOCUMENT_ROOT'].'/system/bootstrap.php');
  3. require($_SERVER['DOCUMENT_ROOT'].'/system/head.php');
  4. ?>
  5. Тело страницы
  6. <?
  7. require($_SERVER['DOCUMENT_ROOT'].'/system/end.php');
intelligent intelligent [Off] [#] (20.02.2017 / 13:46)
Там ещё надо кое какие штуки подключать
PaRtiZzaN PaRtiZzaN [Off] [#] (20.02.2017 / 13:48)
¯\_(ツ)_/¯
intelligent, Например?
ramzes ramzes [Off] [#] (20.02.2017 / 13:56)
контейнер видимо
PaRtiZzaN PaRtiZzaN [Off] [#] (20.02.2017 / 14:02)
¯\_(ツ)_/¯
Подключаем контейнер
  1. /** @var Interop\Container\ContainerInterface $container */
  2. $container = App::getContainer();


Если нужны счетчики то добавляем перед инклудами

  1. /** @var Johncms\Counters $counters */
  2. $counters = App::getContainer()->get('counters');


Если нужны настройки
  1. /** @var Johncms\Config $config */
  2. $config = $container->get(Johncms\Config::class);

Изм. PaRtiZzaN (20.02.2017 / 14:32) [3]
Delphinum Delphinum [Off] [#] (20.02.2017 / 14:29)
PaRtiZzaN, правильно
AlkatraZ AlkatraZ (SV!) [Off] [#] (20.02.2017 / 14:47)
╭∩╮ (`-`) ╭∩╮
Молодцы, правильное и полезное дело.
Только вот с данными из контейнера будут изменения.

Я в данный момент пишу (уже почти написал) внутренний API, который представляет из себя набор интерфейсов, описывающих все те данные, которые мы можем затребовать из контейнера.
https://github.com/john-cms/jo ... s/Api

В JohnCMS 7.1.0 который ожидается в следующем месяце это уже будет.

Для совместимости с версией 7.0.0 я временно создал алиасы сервисов: https://github.com/john-cms/jo ... p#L19
Но в новых разработках, при запросах объектов из контейнера, рекомендую ориентироваться только ена интерфейсы, ибо реализация может меняться. А так вы будете иметь гарантированную (в пределах мажорной версии) совместимость с ядром.
Delphinum Delphinum [Off] [#] (20.02.2017 / 14:48)
AlkatraZ, alias + deprecated спасут ситуацию
AlkatraZ AlkatraZ (SV!) [Off] [#] (20.02.2017 / 14:50)
╭∩╮ (`-`) ╭∩╮
Вот то, что СЕЙЧАС (JohnCMS 7.0.0) можно требовать из контейнера
  1. /** @var Interop\Container\ContainerInterface $container */
  2. $container = App::getContainer();
  3.  
  4. /** @var PDO $db */
  5. $db = $container->get(PDO::class);
  6.  
  7. /** @var Johncms\User $systemUser */
  8. $systemUser = $container->get(Johncms\User::class);
  9.  
  10. /** @var Johncms\Tools $tools */
  11. $tools = $container->get('tools');
  12.  
  13. /** @var Johncms\Environment $env */
  14. $env = App::getContainer()->get('env');
  15.  
  16. /** @var Johncms\Bbcode $bbcode */
  17. $bbcode = $container->get('bbcode');
  18.  
  19. /** @var Johncms\Config $config */
  20. $config = $container->get(Johncms\Config::class);
  21.  
  22. /** @var Zend\I18n\Translator\Translator $translator */
  23. $translator = $container->get(Zend\I18n\Translator\Translator::class);

Изм. AlkatraZ (20.02.2017 / 14:52) [1]
AlkatraZ AlkatraZ (SV!) [Off] [#] (20.02.2017 / 14:50)
╭∩╮ (`-`) ╭∩╮
# Delphinum (20.02.2017 / 14:48)
AlkatraZ, alias + deprecated спасут ситуацию
Да, потому я насовсем не стал выпиливать старык ключи, а создал алиасы к сервисам.
PaRtiZzaN PaRtiZzaN [Off] [#] (20.02.2017 / 14:56)
¯\_(ツ)_/¯
AlkatraZ, Да уж. Можно ли как то обновляться мне если я много чего уже изменил в скрипте? В плане верстки. Просто распаковать в корень уже не получится
AlkatraZ AlkatraZ (SV!) [Off] [#] (20.02.2017 / 14:56)
╭∩╮ (`-`) ╭∩╮
А вот, что надо будет требовать, начиная с версии 7.1.0
  1. /** @var Interop\Container\ContainerInterface $container */
  2. $container = App::getContainer();
  3.  
  4. /** @var PDO $db */
  5. $db = $container->get(PDO::class);
  6.  
  7. /** @var Johncms\Api\UserInterface $systemUser */
  8. $systemUser = $container->get(Johncms\Api\UserInterface::class);
  9.  
  10. /** @var Johncms\Api\ToolsInterface $tools */
  11. $tools = $container->get(Johncms\Api\ToolsInterface::class);
  12.  
  13. /** @var Johncms\Api\EnvironmentInterface $env */
  14. $env = App::getContainer()->get(Johncms\Api\EnvironmentInterface::class);
  15.  
  16. /** @var Johncms\Api\BbcodeInterface $bbcode */
  17. $bbcode = $container->get(Johncms\Api\BbcodeInterface::class);
  18.  
  19. /** @var Johncms\Api\ConfigInterface $config */
  20. $config = $container->get(Johncms\Api\ConfigInterface::class);
  21.  
  22. /** @var Zend\I18n\Translator\Translator $translator */
  23. $translator = $container->get(Zend\I18n\Translator\Translator::class);


Как видите, вызов всех внутренних (JohnCMS) сервисов заменены на интерфейсы.
AlkatraZ AlkatraZ (SV!) [Off] [#] (20.02.2017 / 14:58)
╭∩╮ (`-`) ╭∩╮
# PaRtiZzaN (20.02.2017 / 14:56)
AlkatraZ, Да уж. Можно ли как то обновляться мне если я много чего уже изменил в скрипте? В плане верстки. Просто распаковать в корень уже не получится
Скорее всего нельзя.
Смело оставайся на 6.х.х т а версия пока тоже поддерживается.
Развиваться не будет, но вот апдейты по безопасности и фиксы недоработок будут выходить.
Simba Simba (SV!) [Off] [#] (20.02.2017 / 15:00)
Кадило крутится, лавэха мутится
# AlkatraZ (20.02.2017 / 14:58)
Скорее всего нельзя.
Смело оставайся на 6.х.х т а версия пока тоже поддерживается.
Развиваться не будет, но вот апдейты по безопасности и фиксы недоработок будут выходить.
Он вроде седьмую версию уже перекопал в плане верстки...
AlkatraZ AlkatraZ (SV!) [Off] [#] (20.02.2017 / 15:01)
╭∩╮ (`-`) ╭∩╮
Касаемо интерфейсов...
(для примера рассмотрим это: https://github.com/john-cms/jo ... e.php)
Это будет как бы "руководство программиста модулей", к каждому методу я напишу подробную инструкцию: что он делает, какие нужны аргументы и что получаем на выходе. Вы ориентируетесь по интерфейсам. А реализация (конкретные классы) может меняться, на нее сильного внимания не обращайте.

В примере по ссылке выше таких инструкций еще нет, после окончания запланированных работ, я напишу все нужные мануалы в виде PhpDoc каментов.
Изм. AlkatraZ (20.02.2017 / 15:05) [1]
AlkatraZ AlkatraZ (SV!) [Off] [#] (20.02.2017 / 15:04)
╭∩╮ (`-`) ╭∩╮
# Simba (20.02.2017 / 15:00)
Он вроде седьмую версию уже перекопал в плане верстки...
Если код в папке /system не трогал (кроме менюхи, чердака и подвала) то проблем по идее не должно возникнуть. Главное, чтоб не трогал bootstrap.php и файлы в каталоге /system/johncms/
PaRtiZzaN PaRtiZzaN [Off] [#] (20.02.2017 / 15:09)
¯\_(ツ)_/¯
AlkatraZ, Да, я ничего в /system кроме менюхи, шапки и ног не трогаю. Ну только если bb коды.
PaRtiZzaN PaRtiZzaN [Off] [#] (20.02.2017 / 15:10)
¯\_(ツ)_/¯
Кстати я думаю заняться бутстрапизацией джона
AlkatraZ AlkatraZ (SV!) [Off] [#] (20.02.2017 / 15:26)
╭∩╮ (`-`) ╭∩╮
# PaRtiZzaN (20.02.2017 / 15:09)
AlkatraZ, Да, я ничего в /system кроме менюхи, шапки и ног не трогаю. Ну только если bb коды.
Если не трогал, тогда будет работать.
Насчет Bbcode где то в соседней теме обсуждали как быть. Сам класс не трогай, а то потеряешь совместимость с последующими обновлениями.
  Всего: 29
1 2 >>

Кураторы: PaRtiZzaN

Фильтр по автору
Скачать тему

Форум

Новые вверху
Главная
0 / 87

JohnCMS 7.1.0

Яндекс.Метрика
© JohnCMS