Библиотека доступа к MySQL/PostgreSQL

Имеет ли смысл заниматься развитием данной библиотеки?

  • Да, имеет

    Голосов: 1 10,0%
  • Нет, не имеет

    Голосов: 9 90,0%

  • Всего проголосовало
    10

fixxxer

К.О.
Партнер клуба
@Devoter, C++ - это C++, а php - это php. Тут свои четко прописанные стандарты, и С++-стиль выглядит чужеродно - точно так же диковато, как python-код, оформленный не по pep-8.

В python, кстати, на самом деле нет приватных полей. __ - это хак, при компиляции __ заменяется на что-то вроде _ClassName_ :)
 

Devoter

Новичок
Я лишь подтвердил предположение. Сделать из PHP C++ желания нет и не было. Насчет стиля, конечно, посмотрю. Собственно, уже многое поправил.

UPD: Почитал я PSR, не все утверждения выглядят верными. Что касается имен приватных полей и методов, то тут я с ними в корне не согласен. С другой стороны, это - лишь рекомендации. Нюансы каждый волен выбирать сам.
Что касается автозагрузки классов - возникает резонный вопрос:
У меня две различные реализации одних и тех же классов, вопрос - как же реализовать фишку вида require $storageType."/storageobject.php", через namespace? Просто я пока не разобрался. eval не предлагать )
 
Последнее редактирование:

fixxxer

К.О.
Партнер клуба
это - лишь рекомендации
pep8 - это тоже только рекомендации, но их несоблюдение карается всеобщим презрением. :) С psr - точно так же.

как же реализовать фишку
А в C++ ты бы ты ее как реализовал? :) (не compile time)

Назвать классы по-разному и сделать фабрику+фасад/прокси.
 

Фанат

oncle terrible
Команда форума
Я так понимаю, что с защитой от инъекций в этом классе вообще никак.
 
Последнее редактирование:

Вурдалак

Продвинутый новичок
Что касается имен приватных полей и методов, то тут я с ними в корне не согласен
По своему опыту скажу, что в 99% поля — private; в 0.9% — protected. Зачем их выделять как-то по-особенному для тех самых исключительных 0.1%?

У меня две различные реализации одних и тех же классов, вопрос - как же реализовать фишку вида require $storageType."/storageobject.php", через namespace? Просто я пока не разобрался. eval не предлагать )
Если у тебя две реализации, то они должны иметь разные имена, каждое из которых будет отражать специфичность реализации. И общий интерфейс.
 

Devoter

Новичок
Разные имена для разных реализаций - и есть фабрика.
По своему опыту скажу, что в 99% поля — private; в 0.9% — protected. Зачем их выделять как-то по-особенному для тех самых исключительных 0.1%?
Составители code style для других языков могут оказаться весьма несогласны. Но я не вижу смысла разводить холивар по поводу стиля.

Я так понимаю, что в плане защиты от инъекций в этом классе вообще никак.
Хотелось бы узнать - что имеется ввиду, когда говорится о защите от инъекций? Просто разные люди почему-то разные вещи под этим понимают. Впрочем, если не трудно - протестируйте. Этот небольшой наборчик классов, можно сказать, проект для саморазвития. Так что было бы интересно увидеть - насколько "все плохо". )
 

Фанат

oncle terrible
Команда форума
Хотелось бы узнать - что имеется ввиду, когда говорится о защите от инъекций?
Имеется в виду то, что в классе её нет.
Просто разные люди почему-то разные вещи под этим понимают.
Непонятно, при чем здесь какие-то люди.
Впрочем, если не трудно - протестируйте.
PHP:
if(($start != NULL) && ($limit != NULL))
$query .= " LIMIT ".$start.", ".$limit;
elseif($limit != NULL)
$query .= " LIMIT ".$limit;
И что тут тестировать, я стесняюсь спросить?
Заходи кто хочешь, бери что хочешь.
 

Breeze

goshogun
Команда форума
Партнер клуба
PHP:
        if($agr != NULL)
            $rval = $agr."(".$val.")";
        else
            $rval = $val;
скобочек на складе не выдали?
 

Devoter

Новичок
Имеется в виду то, что в классе её нет.

Непонятно, при чем здесь какие-то люди.

PHP:
if(($start != NULL) && ($limit != NULL))
$query .= " LIMIT ".$start.", ".$limit;
elseif($limit != NULL)
$query .= " LIMIT ".$limit;
И что тут тестировать, я стесняюсь спросить?
Заходи кто хочешь, бери что хочешь.
Конкретно этот пункт fixed
 

Devoter

Новичок
Изначально я все выложил с мыслью: вдруг кому понадобится или же просто для себя интересное зерно найдет. Но теперь вижу задачу другую. Буду пилить потихоньку для саморазвития в свободное время. Тем самым хочу перенять правильные подходы к современному стилю программирования на php.
Когда фиксил баг с limit/offset - подумал, что, если адаптировать под php7, то необходимости в intval или (int) не будет вовсе, но вот думаю спросить у более сведущих: стоит ли сразу перенести на php7 или же лучше сперва приблизиться к psr? Та же автозагрузка классов.
P.S.: Интерес к PHP спустя 4 года проснулся по той простой причине, что вышел PHP7, который, как мне кажется, сделал PHP более адекватным. Мне раньше очень сильно не хватало местами строгой типизации, и всякие там === и intval можно часто исключить. Когда появились первые новости о Dart, мне показалось, что там как раз реализовано именно то, чего не хватает в js и php. Теперь вот, в php это есть.
P.P.S.: Понимаю, что, по сути, уже существует куча гораздо более прогрессивных аналогов моей поделке, потому не стану спрашивать - "чего в ней не хватает" - но спрошу - "чего не хватает/что не устраивает" в существующих ORM/AR, DBAL/QB?
 
Последнее редактирование:

AnrDaemon

Продвинутый новичок
P.P.S.: Понимаю, что, по сути, уже существует куча гораздо более прогрессивных аналогов моей поделке, потому не стану спрашивать - "чего в ней не хватает" - но спрошу - "чего не хватает/что не устраивает" в существующих ORM/AR, DBAL/QB?
У тебя странная группировка… но, ладно, по сути вопрос не в ней… ИМО, чтобы писать что-то подобное, надо сначала попользоваться чем-то ещё, оценить плюсы и минусы, и потом, сознательно, допиливать это "что-то", либо пилить что-то кардинально новое, если посетила Светлая Идея.
PDO это DBAL, он конечно убогонький, но он есть везде, ибо родной, и на него можно рассчитывать.
 

fixxxer

К.О.
Партнер клуба
Утечек, конечно, в современных php быть не должно.
Но в php 5 будет лишний refcount, а в php 7 еще хуже - будет лишний раз опосредовано refcounted zval-ом и все крутые оптимизации из phpng пойдут по звезде.
 

Devoter

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

Devoter

Новичок
Да, слона-то я и не приметил. Впрочем, спасибо, убрал ссылки.
 
Сверху