Git Product home page Git Product logo

limb's People

Contributors

alexmarlo avatar andrewdryga avatar aredozubov avatar averetennikov avatar idler avatar knevcher avatar kugu avatar mihailoff avatar p-kislitskiy avatar pachanga avatar r-kitaev 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

limb's Issues

Broken tests in constructor package

=========== Forking processes for each test path(PHP cmdline 'php -c /etc/php5/cli/php.ini') ===========
=========== Group test in "/home/conf/limb_rep/limb/constructor" ===========
1 of 6 done(lmbARRelationAggrementsResolverTest)
2 of 6 done(lmbARRelationConstructorTest)
E_WARNING: file_get_contents(/home/conf/limb_rep/limb/constructor/tests/cases/../../../var/constructor//lmbAdminTemplatesConstructorTest/template/admin_social_security/form_fields.phtml): failed to open stream: Нет такого файла или каталога in /home/conf/limb_rep/limb/constructor/tests/cases/lmbAdminTemplatesConstructorTest.class.php on line 35

  1. Equal expectation fails at character 0 with [
  • Свойства
    <dl class="field">
      <dt>{{label for="code"}}code:{{/la...] and [] at [/home/conf/limb_rep/limb/constructor/tests/cases/lmbAdminTemplatesConstructorTest.class.php line 101]
in testCreate_formFieldsTemplate
in lmbAdminTemplatesConstructorTest
in lmbAdminTemplatesConstructorTest.class.php
in Group test in "/home/conf/limb_rep/limb/constructor/tests/cases"
in Group test in "/home/conf/limb_rep/limb/constructor/tests"
in Group test in "/home/conf/limb_rep/limb/constructor"

Exception 1!
Unexpected PHP error [file_get_contents(/home/conf/limb_rep/limb/constructor/tests/cases/../../../var/constructor//lmbAdminTemplatesConstructorTest/template/admin_social_security/form_fields.phtml): failed to open stream: Нет такого файла или каталога] severity [E_WARNING] in [/home/conf/limb_rep/limb/constructor/tests/cases/lmbAdminTemplatesConstructorTest.class.php line 35]
in testCreate_formFieldsTemplate
in lmbAdminTemplatesConstructorTest
in lmbAdminTemplatesConstructorTest.class.php
in Group test in "/home/conf/limb_rep/limb/constructor/tests/cases"
in Group test in "/home/conf/limb_rep/limb/constructor/tests"
in Group test in "/home/conf/limb_rep/limb/constructor"
E_WARNING: file_get_contents(/home/conf/limb_rep/limb/constructor/tests/cases/../../../var/constructor//lmbAdminTemplatesConstructorTest/template/admin_document/form_fields.phtml): failed to open stream: Нет такого файла или каталога in /home/conf/limb_rep/limb/constructor/tests/cases/lmbAdminTemplatesConstructorTest.class.php on line 35
2) Equal expectation fails at character 0 with [

  • Свойства
    <dl class="field">
      <dt>{{label for="title"}}title:{{/...] and [] at [/home/conf/limb_rep/limb/constructor/tests/cases/lmbAdminTemplatesConstructorTest.class.php line 119]
in testCreate_formFieldsTemplateWithoutMetaFields
in lmbAdminTemplatesConstructorTest
in lmbAdminTemplatesConstructorTest.class.php
in Group test in "/home/conf/limb_rep/limb/constructor/tests/cases"
in Group test in "/home/conf/limb_rep/limb/constructor/tests"
in Group test in "/home/conf/limb_rep/limb/constructor"

Exception 2!
Unexpected PHP error [file_get_contents(/home/conf/limb_rep/limb/constructor/tests/cases/../../../var/constructor//lmbAdminTemplatesConstructorTest/template/admin_document/form_fields.phtml): failed to open stream: Нет такого файла или каталога] severity [E_WARNING] in [/home/conf/limb_rep/limb/constructor/tests/cases/lmbAdminTemplatesConstructorTest.class.php line 35]
in testCreate_formFieldsTemplateWithoutMetaFields
in lmbAdminTemplatesConstructorTest
in lmbAdminTemplatesConstructorTest.class.php
in Group test in "/home/conf/limb_rep/limb/constructor/tests/cases"
in Group test in "/home/conf/limb_rep/limb/constructor/tests"
in Group test in "/home/conf/limb_rep/limb/constructor"
E_WARNING: file_get_contents(/home/conf/limb_rep/limb/constructor/tests/cases/../../../var/constructor//lmbAdminTemplatesConstructorTest/template/admin_person/form_fields.phtml): failed to open stream: Нет такого файла или каталога in /home/conf/limb_rep/limb/constructor/tests/cases/lmbAdminTemplatesConstructorTest.class.php on line 35
3) Equal expectation fails at character 0 with [

  • Свойства
    <dl class="field">
      <dt>{{label for="name"}}name:{{/la...] and [] at [/home/conf/limb_rep/limb/constructor/tests/cases/lmbAdminTemplatesConstructorTest.class.php line 134]
in testCreate_formFieldsTemplateWithoutRelationFields
in lmbAdminTemplatesConstructorTest
in lmbAdminTemplatesConstructorTest.class.php
in Group test in "/home/conf/limb_rep/limb/constructor/tests/cases"
in Group test in "/home/conf/limb_rep/limb/constructor/tests"
in Group test in "/home/conf/limb_rep/limb/constructor"

Exception 3!
Unexpected PHP error [file_get_contents(/home/conf/limb_rep/limb/constructor/tests/cases/../../../var/constructor//lmbAdminTemplatesConstructorTest/template/admin_person/form_fields.phtml): failed to open stream: Нет такого файла или каталога] severity [E_WARNING] in [/home/conf/limb_rep/limb/constructor/tests/cases/lmbAdminTemplatesConstructorTest.class.php line 35]
in testCreate_formFieldsTemplateWithoutRelationFields
in lmbAdminTemplatesConstructorTest
in lmbAdminTemplatesConstructorTest.class.php
in Group test in "/home/conf/limb_rep/limb/constructor/tests/cases"
in Group test in "/home/conf/limb_rep/limb/constructor/tests"
in Group test in "/home/conf/limb_rep/limb/constructor"
3 of 6 done(lmbAdminTemplatesConstructorTest)
4 of 6 done(lmbConfigConstructorTest)
5 of 6 done(lmbModelConstructorTest)
6 of 6 done(lmbProjectConstructorTest)
FAILURES!!!
Test cases run: 6/6, Passes: 73, Failures: 3, Exceptions: 3
Tests time: 1.305 sec.
Tests memory usage: 10.148 Mb.
=========== FAILED TESTS ===========
[FLR] /home/conf/limb_rep/limb/constructor/tests/cases/lmbAdminTemplatesConstructorTest.class.php:101
[ERR] /home/conf/limb_rep/limb/constructor/tests/cases/lmbAdminTemplatesConstructorTest.class.php:35
[FLR] /home/conf/limb_rep/limb/constructor/tests/cases/lmbAdminTemplatesConstructorTest.class.php:119
[ERR] /home/conf/limb_rep/limb/constructor/tests/cases/lmbAdminTemplatesConstructorTest.class.php:35
[FLR] /home/conf/limb_rep/limb/constructor/tests/cases/lmbAdminTemplatesConstructorTest.class.php:134
[ERR] /home/conf/limb_rep/limb/constructor/tests/cases/lmbAdminTemplatesConstructorTest.class.php:35
=========== TESTS HAD ERRORS(see above) ===========

Переводы строки в phpMailer в пакете mail (phpmailer)

Сейчас перевод строки \r\n везде, что вызывает неправильное распознавание multipart-заголовков (в письмах с вложением) некоторыми постовыми сервисами (mail.ru например), наилучшим решением будет использовать \r\n для секции заголовков и \n для тела письма

Формат выдачи логов в FirePHP

Сейчас для работы с FirePHP используется стандартный метод asText() класса lmbLogEntry. И получается в плагине FireFox видно строку. А вот если в FirePHP передать массив или объект, то по ним можно будет видеть красивую выдачу.
Считаю, что для FirePHP необходимо изменить формат выдачи, чтоб он был не в строке, а хотя бы в массиве или лучше в объекте.

Ошибка в документации на модуль Log

В документации http://wiki.limb-project.com/2011.1/doku.php?id=limb3:ru:packages:log дан неправильный формат конфига.
Правильный должен быть в файле log.conf.php и содержать секцию default.
Например :

array( 'default' => array( 'firePHP://localhost/?check_extension=0', 'file://'.lmb_env_get('LIMB_VAR_DIR').'/log/error.log' ) ) ); Также, дано не полное описание параметров метода log класса Log. Есть 5 параметр, который задает какую секцию из конфига использовать. То есть, в конфиге помимо обязательной секции deafult можно задать другие секции, например file или firephp. Например: array( 'default' => array( 'firePHP://localhost/?check_extension=0', 'file://'.lmb_env_get('LIMB_VAR_DIR').'/log/error.log' ), 'file' => array( 'file://'.lmb_env_get('LIMB_VAR_DIR').'/log/error.log', ), 'firephp' => array( 'firePHP://localhost/?check_extension=0', ), ) ); И при вызове метода log можно передавать какую секцию использовать. Например: lmbToolkit::instance()->getLog()->log('**METHOD**',LOG_INFO,**METHOD**,'file'); lmbToolkit::instance()->getLog()->log('**METHOD**',LOG_INFO,**METHOD**,'firephp');

Подключение БД MySQL

Прошу расписать код подключения БД, т.к. не ясно в каком месте вписать название БД, логин и пароль от БД. Заранее спасибо.
Вот этот код $conf = array('dsn' => 'mysql://root:secret@localhost/limb_application?charset=utf8');

Нет рисунка в репозитории примера магазина

В таблице стилей limb-example-shop/www/styles/main.css есть следующий блок:

navigation ul li {background: url(../images/marker/square_white.gif) no-repeat left 7px;list-style-type:none;margin: 0 0 0 40px;padding-left: 10px;height:18px}

Но самого файла ../images/marker/square_white.gif в репозитории нет.

Как сбросить кэш?

Получил под обслуживание проект с вашим фреймворком. Шаблонизатор wact. Нашел скомпиллированные файлы, но не знаю какие удалять. Есть ли способ почистить кэш для отдельных страниц?

Не кидать исключение (но писать в лог) на неудачной попытке прочесть сессию.

Часто проявляется когда на старом домене выкатывается новое приложение. Пользователи ломятся со своими старыми PHPSESSION-куками и получают 500.
Возможно опциально, но я считаю что в таком случае надо узнавать его как гостя, но писать об этом в лог для возможности получения ответа на вопрос "почему?".

========================= [94.181.191.107][GET - /] [Feb 10 2013 14:21:24]=========================
Error: lmbException: session_start(): open(/var/lib/php5/sess_52d7g0ddvaabkv0nqo4s83lhe5, O_RDWR) failed: Permission denied (13)
Additional attributes: Array
(
[file] => /var/www/feb2013.krutogoliki.ru/lib/limb/session/src/lmbSession.class.php
[line] => 33
)

Back trace:

  • lmbDelegate::invoke(INT(2), STRING(107) "session_start(): open(/var/lib/php5/sess_52d7g0ddvaabkv0nqo4s83lhe5, O_RDWR) failed: Permission deni...", STRING(73) "/var/
    www/feb2013.krutogoliki.ru/lib/limb/session/src/lmbSession.class.php", INT(33), ARRAY(1))
  • session_start() in "/var/www/feb2013.krutogoliki.ru/lib/limb/session/src/lmbSession.class.php" line 33
  • lmbSession::start(OBJECT(lmbSessionNativeStorage)) in "/var/www/feb2013.krutogoliki.ru/lib/limb/web_app/src/filter/lmbSessionStartupFilter.class.php" line 38
  • lmbSessionStartupFilter::run(OBJECT(ProjectApplication))
  • call_user_func_array(ARRAY(2), ARRAY(1)) in "/var/www/feb2013.krutogoliki.ru/lib/limb/core/src/lmbProxy.class.php" line 57

Проблема с модулем SESSION в части использования БД

В phpdoc самого файла используется неправильная константа - LIMB_USE_DB_DRIVER
В phpdoc метода написано использование правильной контстанты LIMB_SESSION_USE_DB_DRIVER, но в коде использования нет. Но даже если его добавить, не вызывается метод commitTransaction() класса lmbMysqlConnection, который прописан в dsn в db.conf.php
То есть все работает штатно, вызывается метод executeStatement() класса lmbMysqlConnection с правильными параметрами, запрос insert проходит. Но он прохрдит внутри транзакции, а коммита транзакции нету.
Тут я не смог разобраться до конца, как это дожно работать. Нужна помосчь в этом вопросе.
Второй момент - документация http://wiki.limb-project.com/2011.1/doku.php?id=limb3:ru:packages:session соеджит неправильный дамп таблицы, в репе лежит правильный.

Неправильное поведение isDirtyProperty в AR

При полном импорте объекта в реквест (напр., при сабмите формы) все не строковые поля помечаются как "грязные" даже если они не изменялись. Происходит это из-за тождественного сравнения старого и нового значения в _setARField.

Ошибка в PHPDoc validation/src/lmbErrorList::getReadable()

Метод возвращает array, но в @return указано string

/**
* Returns all processed error list with formatted messages
* @see lmbErrorList :: addError()
* @return string
*/
function getReadable()
{
  $result = array();
  foreach ($this as $error)
    $result[] = $error->getReadable();

  return $result;
}

Migrate

Migration tool не правильное обрабатывает ситуации со сбросом значения по умолчанию, в одной с миграций он забыл поставить точки с запятыми после
ALTER TABLE newsALTERctime DROP DEFAULT

Не работает FirePHP

При указании firePHP в блоке конфига logs заголовки выставляются, но плагин firePHP не ловит их.
Возможно это из-за устаревшей версии библиотеки. Она сейчас включена в релиз.
Как я понимаю это произошло из-за доработок в библиотеке в части работы с заголовками. Но в текущей версии проверка факта отправки заголовков и сама отправка заголовков вынесена в отдельные методы, которые можно переопределить.

Странное поведение AR с rollback

Есть код, в котором:

  • сначала select id from table1
  • потом insert into table1 (id) values (1), переде этим идет begin
  • потом select no_such_field from table1, выскакивает lmbDbException: Unknown column 'no_such_field', а потом почему-то идет rollback.

Почему rollback в таком странном месте происходит?

Создание корня дерева

Если (по каким-то причинам) в дереве отсутствует корень Limb очищает всю таблицу и создает новый корень. Это совсем не хорошо.
Вариант 1: пытаться только создать корень (если PK не занят).
Вариант 2: кидать исключение (ничего не пытаться сделать с данными).

XMPPHP в модуле Log

Оно используется?
Я что-то не нашел :(
Оно вообще надо?
В принципе идея интересная, но только недоделанная.

Тег select работает некоррктно если в ложен в template

В коде
{{wrap with="front_layout.phtml"}}

{{into slot="content"}}

{{template name="select"}}

{{select name="my_select" options="$options" /}}
{{/template}}

{{apply template="select" /}}

{{/into}}

{{/wrap}}

тег select не выводит ни одного option

если код не включать во теги wrap into то все работает корректно

Migrate: check_all

  1. На машине А создаём миграцию весии 1000001
  2. Немного позже на машине Б создаём миграцию версии 1000101
  3. С машины Б делаем pull с машина А
  4. Миграция 1000001 не применилась, тк версия текующей базы считается более новой (1000101), хотя это не корректно

Нужна команда, которая будет применять старые миграции вручную (например limb migrate_run HEAD^ по типу git) или автоматически находить и применять пропущенные миграции.

Broken tests of log package

os: win32 (xp)

=========== Forking processes for each test path(PHP cmdline 'php -c D:\usr\php5\php.ini') ===========
INFO: Var dir inited in D:\var\dev\limb\main\limb\var\log/
=========== Group test in "D:\var\dev\limb\main\limb\log" ===========
1 of 8 done(lmbLogToolsTest)
2 of 8 done(lmbLogEchoWriterTest)
3 of 8 done(lmbLogFileWriterTest)
4 of 8 done(lmbLogFirePHPWriterTest)
5 of 8 done(lmbLogPHPLogWriterTest)
Skip: Syslog writer test skipped, because /var/log/syslog not found at [D:\var\dev\limb\main\limb\tests_runner\lib\simpletest\test_case.php line 134]
6 of 8 done(lmbLogEntryTest)

  1. Not equal expectation fails [Integer: 0] matches at [D:\var\dev\limb\main\limb\log\tests\cases\lmbLogTest.class.php line 80]
    in testSetBacktraceDepth
    in lmbLogTest
    in lmbLogTest.class.php
    in Group test in "D:\var\dev\limb\main\limb\log/tests/cases"
    in Group test in "D:\var\dev\limb\main\limb\log/tests"
    in Group test in "D:\var\dev\limb\main\limb\log"
    7 of 8 done(lmbLogTest)
    FAILURES!!!
    Test cases run: 7/8, Passes: 71, Failures: 1, Exceptions: 0
    Tests time: 0.401 sec.
    Tests memory usage: 1.935 Mb.
    =========== FAILED TESTS ===========
    [FLR] D:\var\dev\limb\main\limb\log\tests\cases\lmbLogTest.class.php:80
    =========== TESTS HAD ERRORS(see above) ===========

Упрощение отладки "через var_dump"

Делать var_dump($active_record_model) нельзя, т.к. lmbActiveRecord внутрях сильно сложный. Есть несколько вариантов:

  • реализовать lmbObject->toString и lmbCollection->toString()
  • сделать методы toString в lmbObject и lmbActiveRecord
  • заставить export() выводить упрощенную модель, без связанных объектов (потенциальная полома bc)
  • что-то еще

Хорошо бы еще в lmbCollection добавить toFlatArray(), который бы вел себя, как lmbArrayHelper::toFlatArray().

AR. Конфликт полей kind при построении выборок по связям

Кратко.
Есть 2 класса, являющиеся дочерними от разных родителей. Связь описывается через kind.
Так-же они связаны между собой по любому из типов: many2many, one2many и т.д.

При построении критерии выборки от одного класса к другому по связи происходит конфликт на поле kind которое присутствует в обоих таблицах на уровне sql.
Получается это из за того, что критерия на kind не включает в себя имя таблицы - только имя поля.

Более понятно будет когда покажу тест и фикс.
Сейчас тут публикую чтобы не забыть и не потерять.

Создание объекта ActiveRecord если значение PK в строке

У нас есть проблема с длинной int, особенно в 32-битной ОС. Причем такая, что в php 5.4.0 в функцию json_decode добавили дополнительный параметр чтоб возвращать больше int в виде строки.
В mysql для этого есть bigint.
Но использовать потом эту строку для создания объекта AR нельзя, так как в конструкторе класса идет проверка is_int на передаваемый параметр. А также в методе _findById есть явное приведение к типу int.
Полагаю, можно создавать объект если переданный PK содержит только цифры, даже если он и в строке.

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.