Git Product home page Git Product logo

regiomedia / bitrix-project Goto Github PK

View Code? Open in Web Editor NEW
242.0 242.0 57.0 56 KB

Заготовка 1C Bitrix проекта: автозагрузка, композер, базовые ООП компоненты, миграции, модели, современный фронтенд стек, инструменты для деплоя.

PHP 58.54% JavaScript 20.28% CSS 20.61% HTML 0.57%
1c-bitrix bitrix bitrix-cms composer deployer scss twig vue webpack

bitrix-project's People

Contributors

seilem avatar vkryukov76 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bitrix-project's Issues

Невозможно произвести выгрузку из 1С из-за composer autoload.

При попытке произвести выгрузку из 1С ловлю ошибку: PHP Fatal error: Out of memory (allocated 150470656) (tried to allocate 55883928 bytes) (хотя memory_limit=1024M). В итоге выяснил, что проблема возникает в файле vendor/autoload.php, но что этому сопутствует понять не могу! Пытался исключать директорию битрикс из autoload в composer json:

"autoload": {
    "psr-4": {
         "Local\\" : "local/classes/"
     },
     "exclude-from-classmap": ["/bitrix"]
 }

после чего сделал composer dumpautoload -o, но никаких успехов не добился. Не сталкивался никто с подобной проблемой?

Новый план

Вернуть "классическую" структуру

Публичные файлы в корне проекта. Все служебные штуки - в local. Защита от нежелательного доступа к файлам - .htaccess.

Упростить фронтенд

Заменить текущий сборщик на https://github.com/symfony/webpack-encore. Явно указывать файлы для сборки, вместо соглашения о структуре и именовании.

Избавиться от cssnext в пользу Sass.

Убрать оптимизацию изображений.

Добавить консольный интерфейс

https://github.com/notamedia/console-jedi/

Больше информации

Добавить в Вики мануалы по написанию классов/компонентов/шаблонов/фронтенда. Соответственно в Ридми оставить только проектно-ориентированный текст:

  • Как начать работу
  • Как собрать фронтенд
  • и тд

Новые алиасы для Kint

Внезапно выяснилось, что короткие вызовы Kint

не дружат с модулем интернет магазина и по какой-то причине рушат обмен данными с 1с

скорей всего, дело в том, что статусы заказов в недрах Битрикса проверяются на callable и статус D перекрывается Kint-функцией d() и из-за этого происходит ататат.

Но это не точно.


К счастью можно просто-напросто отключить хелперы Кинта в файле composer.json

https://kint-php.github.io/kint/advanced/#disabling-helper-functions-in-composer

И либо использовать полноценные вызовы методов Кинт, либо написать "безопасные" хелперы

"Фронтовая" часть

"Фронтовая" часть должна обеспечить простую и ненавязчивую возможность использования в шаблонах сайтов/компонентов, а также вне их (если очень сильно надо) следующих модных штук:

  • обработка файлов стилей с помощью PostCSS: 8ab018a и 5d20e93
  • генерация png-спрайтов bbb3262
  • генерация xml-спрайтов (символов)
  • оптимизация изображений 8248cdc
  • современный javascript (es6) e340006
  • Live-Reload сервер (browsersync) 90f0679
  • ???
  • PROFIT

При этом не должны требоваться дополнительные настройки, например, при добавлении нового шаблона сайта.

Для этого необходимы соглашения по структуре и именованию.

Наш галп-таск (или нпм-скрипт (или еще чего)) должен "ходить" по всему проекту и искать директории вида assets-raw, обрабатывыать их содержимое и складывать результат в соседнюю директорию assets-done.

Наименование директорий для исходников и результатов сделать конфигурируемыми.

Скрипты и стили полученные данным способом должны подключаться перед "стандартными" скриптами и стилями, для того чтобы была возможность "по-быстрому" поправить какой-нибудь косяк без участия системы сборки и не потерять данный фикс при ее (сборки) запуске.

(Спорный пункт, потому как есть еще composer'ная директория vendor) Директории с результатами по-умолчанию не должны игнорироваться системой контроля версий. Это позволит убрать из скрипта деплоя шаг по сборке и всегда иметь готовый к использованию код проекта.

Возможность установки mbstring.func_overload 0 для всех модулей composer

Здравствуйте!

Я использую в работе react/http-client, для которого критична установка значения mbstring.func_overload = 0.
Ввиду своих скудных знаний, я не знаю, каким способом можно корректно задать это значение для директории /home/bitrix/<site_name>/vendor. Если поменять это значение глобально - ругается битрикс, пытаюсь задать для директории в конфиге php - не работает.
<Directory /home/bitrix/<site_name>/vendor/> php_admin_value mbstring.func_overload 0 </Directory>

В проекте сделан симлинк вида /home/bitrix/ext_www/<site_name> -> /home/bitrix/<site_name>

Сделать демо-ветку

Добавить сюда

  • структуру сайта (страницы/разделы/меню)
  • миграции сущностей БД (инфоблоки/разделы/элементы)
  • простенькую тему c навигацией
  • несколько (не)типовых компонентов

Error: cannot install \jedi env:init default (PHP Fatal error)

Все пункты установки из гайда проходят без проблем (правда, взял новые dependencies из pull requiest #21: без этого webpack отказывался собирать файлы).

Проблема возникла только в установке среды default через jedi от notamedia.
Копирование происходит нормально, а потом выкидывает ошибку подключения.

PHP, Composer, npm и прочее установлено и настроено. Webpack работает.

Возможно, что проблема в Symlink'ах?
Чтобы описать всю картину, опишу что было мною сделано:

  1. в OpenServer настроена корневая папка /sites/s1, чтобы по домену domain-name открывался сайт (работает)
  2. созданы ярлыки через mklink внутри /sites/s1 на папки /bitrix/. /upload/ и /local/

Собственно, что пишет консоль:

`D:\Web Projects\OSPanel\domains\domain-name>.\vendor\bin\jedi env:init
Which environment install?
[default] Default

default
Copy files from the environment directory
D:\Web Projects\OSPanel\domains\domain-name/bitrix
D:\Web Projects\OSPanel\domains\domain-name/bitrix.settings.php
D:\Web Projects\OSPanel\domains\domain-name/bitrix.settings_extra.php
D:\Web Projects\OSPanel\domains\domain-name/bitrix\php_interface
D:\Web Projects\OSPanel\domains\domain-name/bitrix\php_interface\dbconn.php

PHP Fatal error: Uncaught Error: Class 'Bitrix\Main\Config\Configuration' not found in D:\Web Projects\OSPanel\domains\domain-name\vendor\notamedia\console-jedi\src\Environment\Command\InitCommand.php:174

Stack trace:
#0 D:\Web Projects\OSPanel\domains\domain-name\vendor\notamedia\console-jedi\src\Environment\Command\InitCommand.php(125): Notamedia\ConsoleJedi\Environment\Command\InitCommand->initializeBitrix()
#1 D:\Web Projects\OSPanel\domains\domain-name\vendor\symfony\console\Command\Command.php(255): Notamedia\ConsoleJedi\Environment\Command\InitCommand->execute()
#2 D:\Web Projects\OSPanel\domains\domain-name\vendor\symfony\console\Application.php(992): Symfony\Component\Console\Command\Command->run()
#3 D:\Web Projects\OSPanel\domains\domain-name\vendor\symfony\console\Application.php(255): Symfony\Component\Console\Application->doRunCommand()
#4 D:\Web Projects\OSPanel\domains\domain-name\vendor\notamedia\console-jedi\src\Application\Application.php(103): Symfony\C in D:\Web Projects\OSPanel\domains\domain-name\vendor\notamedia\console-jedi\src\Environment\Command\InitCommand.php on line
174
`

Буду признателен, если поможете с решением данной проблемы.
И отдельная благодарность за сам репозиторий!
Если получится настроить - цены ему не будет просто.

Проблема с Kint-Twig

При ициниализации нового проекта получил такую ошибку в файле event.php

[Error]
Class 'Kint_TwigExtension' not found (0)

хотя kint-twig в vendor присутствует

2018-12-17 19 56 48

Проблема с файлами в shared/bitrix

Повторный запуск (сразу после первого) dep deploy говорит что в папке bitrix есть назакомиченные изменения http://joxi.ru/xAeYlWdIpqebBA

Попытка закоммитить их приводит к сообщению что данные файлы лежат по ссылке и сделать это нельзя - что логично, т.к. файлы bitrix лежат в shared, а она в свою очередь не подлежит версионированию для данного проекта.

Как вы решили/обошли эту проблему?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.