powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Кто разбирается во "внутренностях" PHP драйвере?
34 сообщений из 34, показаны все 2 страниц
Кто разбирается во "внутренностях" PHP драйвере?
    #39796272
Фотография Alexey Kovyazin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет,

если кто-нибудь разбирался или разбирается в начинке PHP-драйвере Firebird, напишите мне ak@ibase.ru, пожалуйста.

With best regards,
Alexey Kovyazin
HQbird www.ib-aid.com
Техподдержка www.ibase.ru
...
Рейтинг: 0 / 0
Кто разбирается во "внутренностях" PHP драйвере?
    #39796361
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Kovyazin,

я во внутренностях PDO немного разбираюсь. Даже багу там поправил. Ещё там разбирается "Dorin Marcoci"

Или речь про ibase_* драйвер который в PHP 8.0 решили убрать?
...
Рейтинг: 0 / 0
Кто разбирается во "внутренностях" PHP драйвере?
    #39798279
Фотография o_v_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Кто разбирается во "внутренностях" PHP драйвере?
    #39798284
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пишут, пишут...
конгресс, немцы какие-то...
голова пухнет!
(С)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Кто разбирается во "внутренностях" PHP драйвере?
    #39798285
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PHP изначально был ещё одним странным языком для генерации HTML. Назачем его ещё
поддерживают и куда-то развивают - непонятно в принципе.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Кто разбирается во "внутренностях" PHP драйвере?
    #39798286
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это стильно, модно, молодёжно! (С)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Кто разбирается во "внутренностях" PHP драйвере?
    #39798300
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
o_v_a,

ну и хорошо что кипит. На самом деле внутреннее устройство и удобство ibase драйвера оставляет желать лучшего. Очень неприятный момент с тем что параметры в подготовленный запрос можно передавать, только как переменное количество параметров. Крайне уродливый код выходит.

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

Порадовала новость https://firebirdsql.org/en/news/revival-of-php-driver-development/
Там Мартин Кодитц чего то делает, но что именно не ясно. Его форка в котором есть хоть какие-то изменения я не нашёл, наверное в приватной ветке. Можно было бы помочь, если понимать, что именно надо исправлять.

Что касается PHP PDO, то оно тоже не идеально.
Во-первых оно не поддерживает специфичных фич Firebird:
- множество транзакций на соединение
- события
- доступ к сервис API
- возможность узнать типы и свойства параметров после подготовки запроса

Во-вторых даже имеющиеся возможности PDO сделаны не до конца, так функция getColumnMeta не реализована вовсе. Параметры внутри реализованы тоже так себе: по возможности внутрях всё переводится в текст и меняется тип параметра, что уничтожает сведения о предыдущем значении типа. Я это понял когда на выходных прикручивал возможность передачи BOOLEAN в качестве параметра.
...
Рейтинг: 0 / 0
Кто разбирается во "внутренностях" PHP драйвере?
    #39798308
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чисто любопытно: про драйвер к LUA уже все забыли или кто-то ещё его пилит?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Кто разбирается во "внутренностях" PHP драйвере?
    #39798320
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
08.04.2019 17:18, Dimitry Sibiryakov пишет:
> Чисто любопытно: про драйвер к LUA уже все забыли или кто-то ещё его пилит?

еретики!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Кто разбирается во "внутренностях" PHP драйвере?
    #39798396
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovPHP изначально был ещё одним странным языком для генерации HTML. Назачем его ещё
поддерживают и куда-то развивают - непонятно в принципе.

ну как бы есть спрос - https://w3techs.com/technologies/overview/programming_language/all
а причинах модно долго рассуждать, но факт остается фактом

Мимопроходящийэто стильно, модно, молодёжно! (С)

стильно модно молодежно это nodejs ))
...
Рейтинг: 0 / 0
Кто разбирается во "внутренностях" PHP драйвере?
    #39798397
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисОчень неприятный момент с тем что параметры в подготовленный запрос можно передавать, только как переменное количество параметров. Крайне уродливый код выходит.
не понял о чем ты
??
...
Рейтинг: 0 / 0
Кто разбирается во "внутренностях" PHP драйвере?
    #39798400
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дегтярев Евгений,

да вот про это

Код: php
1.
ibase_execute ( resource $query [, mixed $... ] ) : resource



нет чтобы

Код: php
1.
ibase_execute ( resource $query, array $params = []) : resource
...
Рейтинг: 0 / 0
Кто разбирается во "внутренностях" PHP драйвере?
    #39798401
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сложно судить почему сделали так а ни эдак, но я не вижу в этом проблемы, один раз обернул и забыл
...
Рейтинг: 0 / 0
Кто разбирается во "внутренностях" PHP драйвере?
    #39798403
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы
поясните откуда весь этот кипишь пошел?
...
Рейтинг: 0 / 0
Кто разбирается во "внутренностях" PHP драйвере?
    #39798404
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дегтярев Евгений,

да всё очень просто в PHP 8.0 (следующая за 7.4) решили переместить ibase_ расширение в PECL, потому что хендлы не потокобезопасные. Оно вроде как ничего, так как хендл соединения не выходит за пределы работающего скрипта, за исключением использования функции ibase_wait_event
...
Рейтинг: 0 / 0
Кто разбирается во "внутренностях" PHP драйвере?
    #39798406
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дегтярев Евгенийсложно судить почему сделали так а ни эдак, но я не вижу в этом проблемы, один раз обернул и забыл

вот как обёртку не делай, она уродством выглядит, самое красивое что получилось

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
        $function = new \ReflectionFunction('ibase_execute');

        if (count($args) == 0) {
            $result = $function->invoke($this->sth);
        } else {
            array_unshift($args, $this->sth);
            $result = $function->invokeArgs($args);
        }



хрень с eval ещё большее уродство
...
Рейтинг: 0 / 0
Кто разбирается во "внутренностях" PHP драйвере?
    #39798409
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я вместо reflection использовал call_user_func_array
после выхода 5ки сделал себе маленьку библитечку и даже не вспоминал как оно там внутрях работает
...
Рейтинг: 0 / 0
Кто разбирается во "внутренностях" PHP драйвере?
    #39798411
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дегтярев Евгений,

мне не нравится когда хендл перемешан с параметрами в одном массиве. Кстати да call_user_func_array наверное подешевле будет
...
Рейтинг: 0 / 0
Кто разбирается во "внутренностях" PHP драйвере?
    #39798414
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисда всё очень просто в PHP 8.0 (следующая за 7.4) решили переместить ibase_ расширение в PECL, потому что хендлы не потокобезопасные. Оно вроде как ничего, так как хендл соединения не выходит за пределы работающего скрипта, за исключением использования функции ibase_wait_event
посмотрел, с точки зрения разработчиков ядра пыха перенос в pecl выглядит логичным
да для тех кто пользуется неприятно, но тем не менее логично
...
Рейтинг: 0 / 0
Кто разбирается во "внутренностях" PHP драйвере?
    #39798416
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисмне не нравится когда хендл перемешан с параметрами в одном массиве.
ну не перемешаны, порядок все таки важен

с одной стороны да, "не аккуратненько как-то", с другой стороны, а не пох ли, все равно в коллфреме все параметры друг за дружкой лягут
...
Рейтинг: 0 / 0
Кто разбирается во "внутренностях" PHP драйвере?
    #39798418
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дегтярев Евгений,

кстати посмотрел в новом коде тоже используется call_user_func_array.

Тут неаккуратно со многих позиций. В массив аргументов включается хендл 1 элементом, теперь если надо использовать этот массив дальше, то сразу после вызова ibase_execute, его надо удалить хендл из массива. А ещё массив и по ссылке может быть передан.
...
Рейтинг: 0 / 0
Кто разбирается во "внутренностях" PHP драйвере?
    #39798424
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovPHP изначально был ещё одним странным языком для генерации HTML. Назачем его ещё
поддерживают и куда-то развивают - непонятно в принципе.
Ну он был как бы не первым <языком для генерации HTML>. Да и на него проще переходить с С-лайк
...
Рейтинг: 0 / 0
Кто разбирается во "внутренностях" PHP драйвере?
    #39798564
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисВ массив аргументов включается хендл 1 элементом, теперь если надо использовать этот массив дальше, то сразу после вызова ibase_execute, его надо удалить хендл из массива.
сделай на временной копии если так нужно
Код: php
1.
2.
3.
4.
5.
{
    $tmp = $params;
    array_unshift($tmp, $this->stmt);
    call_user_func_array("ibase_execute", $tmp);
    ...



А ещё массив и по ссылке может быть передан.
начиная с 5.0 передача по ссылке типа
Код: php
1.
$smt->execute(&$params)

мягко говоря не приветствуется
если параметр необходимо передать по ссылке, то это указывается в объявлении функции, иначе ссзб
...
Рейтинг: 0 / 0
Кто разбирается во "внутренностях" PHP драйвере?
    #39798599
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дегтярев Евгений,

так речь и идёт про передачу по ссылке, которая указывается которое указывается в объявлении функции. Короче это попытка эмуляции PDO методов bindParam, bindValue. Первый связывает по ссылке, второй по значению.

Я в своей реализации все эти фиговины уже обошёл, и не спрашиваю как это сделать. Т.е. когда в своём коде вызываешь обёртку, то вроде всё нормально, но внутрях обёртки ужас, потому что функция ibase_execute изначально сделана неудобной. Собственно это расширение сделано вполне себе в стиле PHP 3, PHP 4 когда параметры у функций были в фиг знает в каком порядке.
...
Рейтинг: 0 / 0
Кто разбирается во "внутренностях" PHP драйвере?
    #39798741
Коваленко Дмитрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денися во внутренностях PDO немного разбираюсь. Даже багу там поправил. Ещё там разбирается "Dorin Marcoci"

Вот вдвоем и тащите кольцо в Мордовию.

Группа поддержки вроде тоже вырисовывается.

:))
...
Рейтинг: 0 / 0
Кто разбирается во "внутренностях" PHP драйвере?
    #39798747
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторкто-нибудь разбирался или разбирается в начинке PHP-драйвере Firebird
идеальный вариант, но мне кажется достаточно связаться с тем, кто в курсе внутренности расширений php, без привязки к ibase
...
Рейтинг: 0 / 0
Кто разбирается во "внутренностях" PHP драйвере?
    #39798757
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дегтярев Евгений,

да оно описано вот тут http://www.phpinternalsbook.com
...
Рейтинг: 0 / 0
Кто разбирается во "внутренностях" PHP драйвере?
    #39798761
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коваленко Дмитрий,

Дим, ну хорош издеваться. Ты внутреннюю начинку всего этого видел?
Это надо очень много времени. Одно дело мелкий баг поправить, совсем другое переписать это расширение почти с нуля.
...
Рейтинг: 0 / 0
Кто разбирается во "внутренностях" PHP драйвере?
    #39798772
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисда оно описано вот тут http://www.phpinternalsbook.com
согласись, знать где лежит описание и даже почитать его - не одно и то же что работать с этим постоянно, чтобы не лезть туда каждому чиху, чтобы быть в курсе различий 5.x vs 7.x а теперь уже и 8.х
...
Рейтинг: 0 / 0
Кто разбирается во "внутренностях" PHP драйвере?
    #39798784
Коваленко Дмитрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисДим, ну хорош издеваться. Ты внутреннюю начинку всего этого видел?

Нет, и не тянет. У меня и так нервы расштаны.

Симонов ДенисЭто надо очень много времени. Одно дело мелкий баг поправить, совсем другое переписать это расширение почти с нуля.
"Нормальный герои всегда идут в обход"
...
Рейтинг: 0 / 0
Кто разбирается во "внутренностях" PHP драйвере?
    #39798818
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дегтярев Евгений,

так ты заняться решил?
Вообще-то связаться с разработчика пыха нет никаких проблем, но разжёвывать они ничего не будут.
Конкретная проблема ibase_ драйвера обозначена. Собственно ты сам читал переписку.
На самом деле в переписке говорится даже о двух проблемах. Вторая заключается в том, что это расширение
не кому поддерживать, чтобы отслеживать все изменения в ядре пыха.
...
Рейтинг: 0 / 0
Кто разбирается во "внутренностях" PHP драйвере?
    #39798942
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

> так ты заняться решил?

чур меня

зы
мне не интересно
код, лазающий в фб, переехал из пыха в другое место еще до миграции на семерку, ибо фб (классик) и пых ниразу не сладкая парочка
...
Рейтинг: 0 / 0
Кто разбирается во "внутренностях" PHP драйвере?
    #39798956
Фотография o_v_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чё там несладкого? Поясните-ка. У нас лет пять на FB 2.5классик в связке с PHP5 некоторые сервисы прожили нормально.
(Сейчас уже на FB3супер+PHP7 переехали)
...
Рейтинг: 0 / 0
Кто разбирается во "внутренностях" PHP драйвере?
    #39798973
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
o_v_a,

охотно верю, до определенного момента тоже работало
пула соединений в пхп нет и установка нового соединения к нагруженному классику на каждый чих слишком накладно
...
Рейтинг: 0 / 0
34 сообщений из 34, показаны все 2 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Кто разбирается во "внутренностях" PHP драйвере?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]