PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (35): В начало « ... 27 28 29 30 31 32 33 34 [35]

> Найдено сообщений: 520
eai Отправлено: 06 Ноября, 2009 - 11:37:47 • Тема: PHP в стиле Delphi VCL • Форум: SQL и Архитектура БД

Ответов: 13
Просмотров: 74
Написав десяток проектов на LAMP пришел к выводу, что при всей гибкости PHP код не дает прорачности и простоты понимания.

посему написал небольшую обертку по мотивам организации этого дела в VCL

Итого вышло 4 класса
1. DBException - для генерации исключений
2. db - абстаркный класс предок
3. db_mySQL - потомок от db с реализацией методов для mySQL
4. dataset - класс управления набором записей.

Код подключение к базе
PHP:
скопировать код в буфер обмена
  1. $db = new db_mySQL();
  2. $db->set_params($dbhost, $dbname, $dbuser, $dbpasswd, "utf8");
  3. $db->connect();


Для Insert, Delete и Update метод execute
PHP:
скопировать код в буфер обмена
  1. $db->execute("update sometbl set somefld=0 where anotherfld = 'someval'")

Метод execute возвращает количество обработанных записей.

Для Select класс dataset
В стиле PHP (Все же кое что на PHP красивее ;)
PHP:
скопировать код в буфер обмена
  1. $ds = new dataset();
  2. $ds->set_db($db);
  3. $ds->set_sql("SELECT * FROM sometable ");
  4. $ds->open();
  5. while ($ds->movenext())
  6. {
  7.         print $ds->data("somefield") . "<BR>";
  8. }
  9.  


В стиле VCL
PHP:
скопировать код в буфер обмена
  1. $ds = new dataset();
  2. $ds->set_db($db);
  3. $ds->set_sql("SELECT * FROM sometable ");
  4. $ds->open(true);
  5. while (!$ds->EOF())
  6. {
  7.         print $ds->data("somefield") . "<BR>";
  8.         $ds->movenext();
  9. }
  10.  


Отключиться от базы (можно и не делать)


Есть еще небольшой набор вспомогательных методов

Теоретически кроме db_mySQL можно наделсть db_Interbase, db_MSSQL

Вообще странно что не нашел ничего подобного.
Код соотвесвтенно раздаю по запросу (просто куда забросить в хорошее место не знаю)
eai Отправлено: 14 Октября, 2009 - 09:20:36 • Тема: Редакторы PHP • Форум: Программное обеспечение

Ответов: 421
Просмотров: 253324
I love EditPlus
eai Отправлено: 01 Октября, 2009 - 09:10:35 • Тема: Дерево стека вызова с именами файлов и номерами строк • Форум: Программирование на PHP

Ответов: 8
Просмотров: 624
PHP для Web считаю лучшим средством.
Конечно, Java с ее бинами и сервером приложений с точки зрения построения архитектур это супер и правильно, но скорость и качество разработки , а главное простота (как разработки так и установки) на PHP меня подкупает. Поэтому для Web я выбираю LAMP!

И __LINE__ c __FILE__ классные особенности которые можно было бы использовать
Вот если бы можно было получить не просто __LINE__ c __FILE__ а массив таких значений.
Наверное я сильно губу просто раскатал Улыбка
eai Отправлено: 30 Сентября, 2009 - 19:11:50 • Тема: Свойства классов и передача параметров по ссылке • Форум: Программирование на PHP

Ответов: 3
Просмотров: 419
Спасибо, я как раз и хотел избежать клонирования объекта.
Спасибо за справку.

P.S.
вот блин ... три строчки написал и выдал в себе программиста на с++ Улыбка
eai Отправлено: 30 Сентября, 2009 - 16:34:49 • Тема: Свойства классов и передача параметров по ссылке • Форум: Программирование на PHP

Ответов: 3
Просмотров: 419
Еще раз всем доброго времени.

сразу пример кода
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. $obj = new SomeClass(); // экземпляр некого класса
  4.  
  5. class cls
  6. {
  7.    var $prop = null;
  8.  
  9.    function __construct(&$obj)
  10.    {
  11.        $this->prop = $obj;
  12.    }
  13. }
  14.  
  15. $clsobj = new cls($obj);
  16.  


И собственно вопрос
В конструктор класса cls мы передаем ссылку на объект obj
В конструкторе присваиваем свойству prop этот объект
Собственно вопрос, создасться ли новый объект при этом или будет все же присвоена ссылка ?

Иными словами сколько экземпляров класса SomeClass будет существовать.
И есть будет создан второй экземпляр, то есть способ этого избежать?
eai Отправлено: 30 Сентября, 2009 - 16:27:02 • Тема: Дерево стека вызова с именами файлов и номерами строк • Форум: Программирование на PHP

Ответов: 8
Просмотров: 624
EuGen пишет:
http://us3.php.net/manual/en/language.exceptions.php


смотрел я это, убиться можно, это вам не c++ Подмигивание
eai Отправлено: 30 Сентября, 2009 - 14:59:13 • Тема: Дерево стека вызова с именами файлов и номерами строк • Форум: Программирование на PHP

Ответов: 8
Просмотров: 624
Stierus пишет:
Xdebug попробуй поставить, думаю, то, что тебе нужно

Эт вариант коенчно. но я хочу писать код который сам себя контролирует, дабы он в любоймомент на любом хостинге работал именно так.
eai Отправлено: 30 Сентября, 2009 - 14:09:42 • Тема: Проблема с кодировкой (windows-1251) • Форум: Программирование на PHP

Ответов: 5
Просмотров: 597
PHP:
скопировать код в буфер обмена
  1.  
  2.                 header("Content-Type: text/html;charset=utf-8");
  3.  

PHP:
скопировать код в буфер обмена
  1.  
  2.                 $db->sql_query("SET character_set_connection = utf8");
  3.                 $db->sql_query("SET character_set_client = utf8");
  4.                 $db->sql_query("SET character_set_results = utf8");
  5.  


Только замени на win1251

И вообще уже пора бы использовать UTF8
eai Отправлено: 30 Сентября, 2009 - 13:39:37 • Тема: PHP и html формы HELP! • Форум: SQL и Архитектура БД

Ответов: 3
Просмотров: 26
Если JavaScrpt не очень владеешь
А слово Ajax вообще не знакомо, то лучше тогда сделать заполнение формы в несколько шагов, при этом подчиненные списки строятся после выбора значения в первом.
Кстати это хороший способ написания сайтво без JavaScript
eai Отправлено: 30 Сентября, 2009 - 13:34:03 • Тема: Дерево стека вызова с именами файлов и номерами строк • Форум: Программирование на PHP

Ответов: 8
Просмотров: 624
Всем доброго времечка,

Известно что для отладки очень удобно испольовать __LINE__ и __FILE__
Сразу понятно где что "обрушилось" и куда "копать".
Обычно это вставляют во что то подобное функции message_die
И пишется код что то вроде

PHP:
скопировать код в буфер обмена
  1.  
  2. if (!some_function())
  3.    message_die( .... ,__LINE__,__FILE__);
  4.  

Однако, это не всегда и не совсем удобно.
Вот я делаю некую функцию, которая вызывется у меня где попало.
если я в теле этой функции cсылаюсь на __LINE__, то получу номер сроки именно в файле где расположено тело этой функции, а откуда она вызывалась не известно.
Более того, ситуация усугубляется если это был "глубокий" вызов в несколько шагов.

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

С Уважением
Евгений

Страниц (35): В начало « ... 27 28 29 30 31 32 33 34 [35]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB