Полезные функции на PHP

Статус
Закрыто для дальнейших ответов.

Jason_Bourne

Member
Регистрация
17.06.2008
Сообщения
11
По-моему, это спор о вкусах. А о вкусах не спорят.
Кроме MySQLi есть PDO.

Спасибо. Но использование своей функции мне привычнее.

А совершенного кода нет в природе - хотя бы потому, что его пишут люди, а люди несовершенны.
 

toxin

Well-Known Member
Регистрация
20.10.2009
Сообщения
478
что родная библиотека php написанная на C лучше и быстрее чем класс прослойка на php?
Я немогу с тобой не согласиться, но и с постом выше. я согласен на 100% !   ;)




С уважекнием toxin...
 

medwoodu

Злобный модер
Регистрация
22.12.2005
Сообщения
1 418
Господа, вы извините, но вам немножко не хватает конкретики. Я критикую конкретные функции приводя альтернативы родных разработчиков :)
>Кроме MySQLi есть PDO.
смотрите мой первый пост, так же есть пропел, доктрина и много еще чего вкусного.
>Спасибо. Но использование своей функции мне привычнее.

No comment. Действительно, зачем использовать функции пхп когда мы можем их переписать на том же пыхе под себя :)

P.S. Jason_Bourne вы pdo то пользовали? Имхо, если только мускул то mysqli таки удобнее.
 

Jason_Bourne

Member
Регистрация
17.06.2008
Сообщения
11
Ну да, что легче:
помнить наизусть функцию из справочника или копировать свой же код в каждый проект? Исключительно дело вкуса. Это про получение параметров запроса.

А вот если нужно, например, обращаться к базе данных и сразу же обрабатывать ошибки?

Каждый раз приписывать or die(mysql_error()) после каждого mysql_query() ?

Не легче ли написать что-то типа


Код:
function myquery($sql)
{
$result = mysql_query($sql);
if(!$result) trigger_error("Error ".mysql_errno().": ".mysql_error().". in query $sql");
return $result; 
}
Или на худой конец

Код:
function myquery($sql)
{
$result = mysql_query($sql);
if(mysql_errno() != 0) trigger_error("Error ".mysql_errno().": ".mysql_error().". in query $sql");
return $result; 
}
что тоже можно зашить в класс.
Или функцию, позволяющую сразу получить выборку в виде многомерного массива или только одной переменной (как в классе ezSQL, используемом в вордпрессе).
 

medwoodu

Злобный модер
Регистрация
22.12.2005
Сообщения
1 418
Ну да, что легче:
помнить наизусть функцию из справочника или копировать свой же код в каждый проект?
я открою вам один секрет, я наизусть мало функций помню, но я знаю как они примерно называются и где они находятся :)

try -catch вам в помощь для обработки ошибок, не надо пользоваться дедовскими методами
>Или функцию, позволяющую сразу получить выборку в виде многомерного массива
Может почитаем документацию!!!
http://ru.php.net/manual/en/mysqli-result.fetch-all.php

Вы знаете у меня возникает вопрос: нафиг вы используете php5, когда есть php3, его намного проще изучить, в нем меньше готовых функций и дохрена всего можно прописать для себя. А вобще звездить намного проще чем изучать что-то новое
 

Jason_Bourne

Member
Регистрация
17.06.2008
Сообщения
11
try -catch вам в помощь для обработки ошибок, не надо пользоваться дедовскими методами
>Или функцию, позволяющую сразу получить выборку в виде многомерного массива
Может почитаем документацию!!!
http://ru.php.net/ma...t.fetch-all.php

Вы знаете у меня возникает вопрос: нафиг вы используете php5, когда есть php3, его намного проще изучить, в нем меньше готовых функций и дохрена всего можно прописать для себя. А вобще звездить намного проще чем изучать что-то новое
Medwoodu, вы наверное, не совсем так меня поняли.
И где искать документацию, я прекрасно знаю. И обращаюсь к ней не так редко. И не являюсь агрессивным консерватором.
Все хорошо в меру. И прогресс тоже.

Все новое хорошо, но есть еще такая проблема, как обратная совместимость. И, в конце концов, привычка, которая меняется не всегда с той же скоростью, что и технологии. Да и переписывать существующие проекты сложно.

Пример:
Работаю над одним сайтом. Скачал недавно пакет Xampp последней версии, в которой включена версия PHP 5.3.0.
И что вы думаете? Сайт не заработал, пришлось изрядно помучиться, чтобы заработали некоторые части, использовавашие те возможности, которых по умолчанию нет в PHP 5.3.0.
Плюнул, снес Xampp и переустановил предыдущую версию.

А скоро выйдет PHP 6, а с ней и новые фишки. Но пока большинство хостингов будут поддерживать его, пройдет не мало времени.
 

Jason_Bourne

Member
Регистрация
17.06.2008
Сообщения
11
И наконец есть такая вещь, как обертка, именно для тех случаев, когда не хватает функционала стандартных функций.
 

medwoodu

Злобный модер
Регистрация
22.12.2005
Сообщения
1 418
Ну холивар удался(хотя ни одна сторона его не хотела) :)
Я встретил в штыки опубликованные здесь функции потому, что им место не в данном разделе форума а на помойке как устаревшим. Эти функции были актуальны 5 лет назад, сейчас пора уже менять что-то и если публиковать, то публиковать для 5.2, 5.3. Правильно написанный код для 5.2 прекрасно совместим с 5.3
По поводу гибкой разработки и рефакторинга: http://www.agiledev.ru/
Кстати так горяче любимый вэтом топике зенд славится в т.ч. именно своей гибкостью и классонезависимостью.

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

Xampp к стыду своему в глаза не видел, мое развитие остановилось на денвере 2 :)
 

Jason_Bourne

Member
Регистрация
17.06.2008
Сообщения
11
Ну холивар удался(хотя ни одна сторона его не хотела) :)
.....

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

Xampp к стыду своему в глаза не видел, мое развитие остановилось на денвере 2 :)
Ну, вот и хорошо, что мы пришли к пониманию.


Обертка нужна не только для расширения функционала но и для гибкости разработки, правда там уже приходят на помощь интерфейсы и абстрактные классы.
А также для того, чтобы избежать многократного повторения шаблонных действий, когда можно (и когда нужно) их избежать. Например, обработки ошибок каждый раз при обращении к базе данных. Или получения сразу всей выборки, чтобы не надо было писать каждый раз что-то вроде

Код:
$result = mysql_query($sql) or die(mysql_error());

while($row = mysql_fetch_array($result))
{
// Какие-то действия
}
.

То, что это реализовано в MySQLi - хорошо.

Денвер тоже хорошая вещь. И кстати, Денвер и Xampp тоже можно назвать обертками, созданными для описанной мной выше цели - избавить разработчика от заморочек с настройкой Апача, PHP, и т.д.
 

kein

Частный случай
Регистрация
23.11.2009
Сообщения
446
А как же сама тема?))
Код:
Полезные функции на PHP
Вот делал небольшой класс в свое время для отладки и тестов.
Примеры использования:
Код:
debug::init();
...
debug::add('Loading db');
...
debug:printr();
debug::debug_backtrace(); // Выводит на экран трейс ошибки, с кусками кода
...
Сделал я его за пару часов, с год назад. Все хотел его доделать грамотно, но все руки не доходили хватает того что есть пока))) Буду рад комментариям, или если покажут альтернативы :)
 

medwoodu

Злобный модер
Регистрация
22.12.2005
Сообщения
1 418
а где бык то, Багира? класс?
смотря для чего альтернативы, есть разные варианты:
http://www.xdebug.org/
zend debag
SimpleTest
PHPUnit
 

kein

Частный случай
Регистрация
23.11.2009
Сообщения
446
Не загрузил файл)) Вот все хочу разобраться с Simpletest, но нет времени
 

Вложения

Статус
Закрыто для дальнейших ответов.
Верх Низ