limb-php-framework / limb Goto Github PK
View Code? Open in Web Editor NEWMain repository of Limb PHP Framework
License: GNU Lesser General Public License v2.1
Main repository of Limb PHP Framework
License: GNU Lesser General Public License v2.1
Если применить фильтр к html-строке, то она рендерится как будто на нее был наложен фильтр raw
=========== 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
<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) ===========
Сейчас перевод строки \r\n везде, что вызывает неправильное распознавание multipart-заголовков (в письмах с вложением) некоторыми постовыми сервисами (mail.ru например), наилучшим решением будет использовать \r\n для секции заголовков и \n для тела письма
Сейчас для работы с FirePHP используется стандартный метод asText() класса lmbLogEntry. И получается в плагине FireFox видно строку. А вот если в FirePHP передать массив или объект, то по ним можно будет видеть красивую выдачу.
Считаю, что для FirePHP необходимо изменить формат выдачи, чтоб он был не в строке, а хотя бы в массиве или лучше в объекте.
В документации http://wiki.limb-project.com/2011.1/doku.php?id=limb3:ru:packages:log дан неправильный формат конфига.
Правильный должен быть в файле log.conf.php и содержать секцию default.
Например :
Просмотр запросов это достаточно частый use case.
Прошу расписать код подключения БД, т.к. не ясно в каком месте вписать название БД, логин и пароль от БД. Заранее спасибо.
Вот этот код $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 в репозитории нет.
On Windows machines, because of different line delimiters on different OS'es.
В теле функции используются "непонятные" переменные, что приведет к падению с Undefined variable:
/**
* Multibyte aware replacement for str_split
*/
function lmb_str_split($str, $split_len=1)
{
return $GLOBALS['LIMB_CHARSET_DRIVER']->_str_split($strX, $strY);
}
https://github.com/limb-php-framework/limb/blob/master/macro/docs/ru/macro/filters.md#date
Вместо $date должна определяться $variable
как альтернатива APC
тест
Получил под обслуживание проект с вашим фреймворком. Шаблонизатор wact. Нашел скомпиллированные файлы, но не знаю какие удалять. Есть ли способ почистить кэш для отдельных страниц?
В репе лежит непонятный файл https://github.com/limb-php-framework/limb/blob/master/log/lib/FirePHP.class.php.diff с лета 2010 года.
Часто проявляется когда на старом домене выкатывается новое приложение. Пользователи ломятся со своими старыми 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:
В стандартах кодирования сказано:
в Limb3 является стандартной практикой не заканчивать код PHP модулей строкой ?>.
Однако, во всех примерах эта строка есть.
В 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 соеджит неправильный дамп таблицы, в репе лежит правильный.
При полном импорте объекта в реквест (напр., при сабмите формы) все не строковые поля помечаются как "грязные" даже если они не изменялись. Происходит это из-за тождественного сравнения старого и нового значения в _setARField.
Метод возвращает 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;
}
Migration tool не правильное обрабатывает ситуации со сбросом значения по умолчанию, в одной с миграций он забыл поставить точки с запятыми после
ALTER TABLE
newsALTER
ctime DROP DEFAULT
https://github.com/limb-php-framework/limb/blob/master/core/src/assert.inc.php#L115
You can't use string as 1st arg of instanceof:
instanceof is used to determine whether a PHP variable is an instantiated object of a certain class
http://www.php.net/manual/en/language.operators.type.php
При указании firePHP в блоке конфига logs заголовки выставляются, но плагин firePHP не ловит их.
Возможно это из-за устаревшей версии библиотеки. Она сейчас включена в релиз.
Как я понимаю это произошло из-за доработок в библиотеке в части работы с заголовками. Но в текущей версии проверка факта отправки заголовков и сама отправка заголовков вынесена в отдельные методы, которые можно переопределить.
Проблема в том, что такие поля обладают ствойством name (id) равным строке 'object[index][fieldname]' при том что в request (и далее) приходит изящный ассоциативный массив.
Тут надо еще подумать как (где) делать такую штуку.
Очень бы хотелось. Планируется вообще? Сам пытался перевести, сходу не получилось.
Есть код, в котором:
Почему rollback в таком странном месте происходит?
Если (по каким-то причинам) в дереве отсутствует корень Limb очищает всю таблицу и создает новый корень. Это совсем не хорошо.
Вариант 1: пытаться только создать корень (если PK не занят).
Вариант 2: кидать исключение (ничего не пытаться сделать с данными).
Оно используется?
Я что-то не нашел :(
Оно вообще надо?
В принципе идея интересная, но только недоделанная.
В коде
{{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 то все работает корректно
Нужна команда, которая будет применять старые миграции вручную (например limb migrate_run HEAD^ по типу git) или автоматически находить и применять пропущенные миграции.
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)
Делать var_dump($active_record_model) нельзя, т.к. lmbActiveRecord внутрях сильно сложный. Есть несколько вариантов:
Хорошо бы еще в lmbCollection добавить toFlatArray(), который бы вел себя, как lmbArrayHelper::toFlatArray().
Кратко.
Есть 2 класса, являющиеся дочерними от разных родителей. Связь описывается через kind.
Так-же они связаны между собой по любому из типов: many2many, one2many и т.д.
При построении критерии выборки от одного класса к другому по связи происходит конфликт на поле kind которое присутствует в обоих таблицах на уровне sql.
Получается это из за того, что критерия на kind не включает в себя имя таблицы - только имя поля.
Более понятно будет когда покажу тест и фикс.
Сейчас тут публикую чтобы не забыть и не потерять.
У нас есть проблема с длинной int, особенно в 32-битной ОС. Причем такая, что в php 5.4.0 в функцию json_decode добавили дополнительный параметр чтоб возвращать больше int в виде строки.
В mysql для этого есть bigint.
Но использовать потом эту строку для создания объекта AR нельзя, так как в конструкторе класса идет проверка is_int на передаваемый параметр. А также в методе _findById есть явное приведение к типу int.
Полагаю, можно создавать объект если переданный PK содержит только цифры, даже если он и в строке.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.