Home

6 Дек, 2005

cat

[php] zend encode

Спасибо, [info]hayk!

Я что-то не задумывался о такой фишке с закодированными файлами.

php zend encode
Метки: ,

14 Окт, 2005

cat

[php]

Zend Studio 5 beta 2 оказалась заметно приятней в пользовании.
В основном почти "летает", хотя и изредка вызывает резкие полусекундные приступы у процессора.

php php zend zend ide ide
Метки: , ,

11 Окт, 2005

cat

[php] zend 5b

У меня такое подозрение, что в этой Zend Studio 5 beta при любом изменении кода заново парсится весь файл и перерисовывается окно.

Ну что ещё может вызывать полный загруз процессора при обыкновенном нажатии клавиши Enter?!

Update: Я говорю о Beta 1.
Zend в Technical Changes утверждает о "Code Folding performance improvements" в Beta 2.
Не знаю, оценить не могу — нахожусь в режиме экономии инета.

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

php php zend zend IDE IDE
Метки: , ,

18 Сент, 2005

cat

[php] webdev

После чтения вот этой записи [info]clops`а и последующих комментариев:

Блин, как же вам хорошо. У вас такие клиенты другие...

«

Бизнесу нужны лучшие из лучших.
»


Всё-таки, это только headline бизнеса.
Середнячкам нужны распространённые решения на распространённых технологиях. От общепризнанных разработчиков.

Блин.

php php
webdev webdev
Метки: ,

3 Сент, 2005

cat

[webdev] uml designing

Вот тут посмотрел раздел UML using на PHPClub`е от [info]svetasmirnova и подумал, а как много разработчиков вообще использует UML при создании проектов на php? И насколько полно? И насколько осознан выбор использования или отказа той или иной "фичи", диаграммы?

Под катом попытка привести в порядок мысли, какие диаграммы где использую )


Кто-нибудь может поделиться своим опытом?
Где я не прав, что еще можно использовать, етц. Можно и за графоманство побить, не возражаю )

php php
uml uml
programming programming
webdev webdev
Метки: , , , , ,

2 Сент, 2005

cat

[php@ru]

А вчера таки действительно был удачный день.
После маленького "головокружения от успехов" полез на xpoint, а потом "случайно" с него заглянул на phpclub.ru

    Краткие мысли:
  1. На вики xpoint`а много нового-интересного. Нужно будет в понедельник вместо бездумного refresh'а ЖЖ заняться самообразованием.

  2. "Большой" форум на PHP Club`е напоминает переполненный пригородный автобус. Или вечернюю электричку, если кому-то это сравнение ближе )
    Сумел посмотреть пару-тройку топиков, больше нервы не выдержали. Думаю, немного потерял.

  3. Хотя в "теоретическом" тоже бывает бардак, но его вроде быстро пресекают, читать уже можно (а половину топиков и интересно).
    Именно эти "половина топиков", кстати, вернули самооценку на своё законное место. Ибо нефиг.
    Нужно будет себя заставить заглядывать туда минимум раз в неделю.

  4. Понравилась идея php-олимпиады. Хотя фиг знает, для олимпиад вообще есть topcoder с его разделением по алгоритмам, дизайну ПО...
    Нужен ли ещё такой же, только для php?

  5. Нужно будет разобраться с функциональным тестированием интерфейса и Selenium в частности. Оно мне скоро будет надо...

  6. И видимо, нужно будет попытать перейти от unit тестирования пост-фактум к TDD. Уж больно panchanga c syfisher хорошо "рекламируют" ;)
    Их доклад с php-conf'а однозначно один из лучших.


И ещё.
Как меня задолбало работать на PHP 4.
До половины кода — это "плааахие" хаки, чтобы как-то эмулировать фичи пятёрки (работа со "статикой" в классах).

[censored]! (с) Programmer A

php
Метки:

28 Авг, 2005

cat

[webdev] php 4.4.0

Поставить новый денвер на локальную машинку и с радостью обнаружить новый notice в сабжевой версии php:
«Notice: Only variable references should be returned by reference»...

Спешно исправил своё черезчур фривольное возвращение null в функциях вида function&bla-bla();

Правда, я не понял, почему не проходит фишка с return $GLOBALS["null"], где $null = null;
function&a(){
  return $GLOBALS["null"]; // всё ок
}
function&b(){
  return &a(); // ругаемся
}


З.Ы.: Кстати, видно не один я на эти грабли наступил: http://ripcord.co.nz/biscuit/forum/?controller=forum&action=index
;)

Update: Ошибка была моя, подробнее в комментариях.

webdev php denwer
Метки: , ,

21 Июл, 2005

cat

[hostings]

Ничего не понимаю.

Почему хостинги на своих страницах не указывают версию MySQL? А некоторые и о версии PHP забывают.
Соотвественно, и разнообразные сайты хостинг-обзоров могут только сказать -- "PHP+, MySQL-" и всё... :(

Собственно, вопрос какой возник:
Как много популярных виртуальных хостингов поддерживают MySQL 4.0.x? А 4.1.x?
И как много хостингов поддерживают php 4.3.10 (а лучше php 5)?

Кто-нить из френдов обладает такой инфой?..

Update: Устроил кросспорт в [info]ru_hosting.
С грустью и нетерпением жду обвинений от обитателей в ламерстве и кривых руках :)

P.S.: А ведь у меня очередной недоюбилей — 21 с половиной лет стукнуло сегодня :)

webdev php mysql hosting
Метки: , , ,

16 Июл, 2005

cat

[php, lj] хмм и от ru_php бывает польза :)

Удивительно, но факт: и от [info]ru_php бывает польза :)
А я уж грешным делом удалить собирался, когда освобождал вчера френдленту от ерунды...

Увидел упоминание о Enterprise Architect, вспомнил, что его использовал [info]demiurg, закачал по указанной там ссылке.

Хорошая вещь. А по реинжинирингу для php 4 -- и желать больше нечего (пока :) ).

    То, что сейчас увидел и заюзал:
  • реинжиниринг по всем файлам из указанного дерева каталогов, с родительскими связями между классами (собственно, по коду в 4ке большего и не понять...),

  • поддержка связи класса с тем файлом, откуда его взяли (открытие в),

  • и, естественно, все эти тульзы для дорисовки модели ручками...

  • сохранение диаграмм в картинки :)


    Из чего не использовал, но хотелось бы:
  • собственно генерация кода по диаграмме.

  • разобраться с добавлением на диаграмму паттернов из их библиотеки GoFских шаблонов


    Не нашел (может плохо искал):
  • генерации модели для БД по SQL-запросам... [Тот же Visio это умеет]

  • каких-нибудь утилиток для переноски всех этих классов на одном листе (типа, перевернуть лист :), align left и т.п. )



И ведь как вовремя подвернулось -- еще бы немного, стал бы ручками рисовать в Visio...

PS: Хотелки по итогам поста:
1. Найти бы теперь лицензию или кряк к EA...
2. Хорошо бы кто-нить создал бы, что-то то вроде ru_php_moderated для архива хороших тем... А пока использую [info]php_rss :(

PS2: Угу, я опять в субботу на работе...

Update: align left и прочие выравнивания нашёл.

Update 2: пример использования (на примере своей иерархии валидаторов).
GIF (60k), PNG (95k), EMF (142k), JPG (150k).
Можно в этом же посте прибить за самую иерархию :), как минимум за подиерархию регэспов :)

php lj oodesign enterprise_architect

15 Июн, 2005

cat

[php]

Давид Мзареулян ([info]david_m) полтора года назад рассказывал об одном забавном хаке -- см. PHP4 для настоящих самураев, ч. 2.
Я этот метод использую, чтобы хоть как-то загладить отсутствие статических переменных класса в php 4.

Правда, он немного не прав с пунктом б. -- объектов этого класса можно создавать сколько душе угодно. Этому можно найти забавное применение: когда нужен не только объект по умолчанию, а ещё вспомогательные (выполняющие какие-то действия, которые "портят" данные объекта) или независимые (например, дополнительные объекты доступа к другим БД). Но сейчас не об этом.

Проблемы возникают при наследовании таких статических классов.
Во-первых, чтобы вызывать метод из родительского класса нужно переопределять его в наследнике (об этом я уже говорил php 4&5. static. childs.).

Во-вторых, сейчас просто вызов родительского класса (like return parent::getCount($id)) не проходит.

Доработка напильником -- меняем:

patch  )

пример странной библиотеки на основе этого метода )

Подобных извращений не было бы, если бы я работал на нормальном языке, но увы...

php oop static hacks

Метки: , ,

6 Июн, 2005

cat

[php, english] миниутилита

"Вместо того, чтобы..." (с)

Так вот, вместо программирования поиска на проблемном сайте или хотя бы чтения лекций по "Методам оптимизаций", решил сделать забавную утилитку -- прокси, которая выдает содержание указанной страницы с ссылками на словарь lingvo (точнее, усеченный её вариант -- только сам перевод).

Получилось почти удобно.

Cамореквесты:
1. управление списком забанненых слов, которых не нужно (типа, которые и так знаю)
2. управление списком запомненных слов -- чтобы не дергать кажный раз яндекс.
3. нормальный интерфейс.
4. заменить некошерный код (насчитал пять или шесть мест с "запашком").

Хотя нутром чую, руки до этого еще не скоро дойдут -- уже не интересно :)

С нетерпением жду, когда яндекс прикроет эту лафу, как промт -- к ним подсоединиться скриптом не получилось...

english utility translator php lingvo yandex


post@radiant's blog

1 Фев, 2005

cat

[php] забавно.

Вчера потратил минут десять, пока обнаружил источник странного глюка.

Есть глобальный объект core.
Создал в одном файле, причем не в функции (это я, так понимаю, важно).
Проинициализировал его переменные (создал dbCore, etc.) - в них сохраняется ссылка на этот core.
Далее идет include другого файла, где использую этот core.

Перестал работать юнит-тест, который проверял соответствие $core и $dbCore->core.

Оказалось, что в начале второго файла я "перестраховался" и поставил global $core.

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

8 Янв, 2005

cat

[php] дописал и даже потестил свой DAO

Если интересно, могу опубликовать исходники (AND | OR) доки в phpDoc.

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

Сделан как объект, но для удобства конечного использования сделал dbCore - класс статических методов - адаптер к всегда определенному global $core->dbCore (получилось не совсем красиво - пришлось копировать определения для каждого класса ;( ).

Но, блин!, если бы я раньше увидел прошлогодние "PHP4 для настоящих самураев, ч. 2" - можно было бы обойтись и без этого нудного копирования.

Будет время, переделаю.

А пока продолжаю "колбасить" свой псевдо-ORM. И листать лекции по "Теории динамических систем" ;)
Метки: , ,
cat

[php] getNowClass()

Вот.
По идее отсюда, новая версия "тово самого".


<?

    
/**
     * Вернуть класс метода, из которого была вызвана эта функция
     * Возвращает пустую строку, если произошла какая-то ошибка
     * (вызвали не из класса, etc.)
     *
     * @since     PHP 4.3.0
     * @return    string
     */
    
function getNowClass(){
        
$arr  = debug_backtrace();
        
$s = "";
        if (isset(
$arr[1])) {
            
$func = $arr[1];
            if (isset(
$func["class"]))
                
$s = $func["class"];
        }
        return
$s;
        }
?>
Метки: ,

6 Янв, 2005

cat

[php] php 4&5. static. childs.

Долго мучался со статическими методами в ПХП 4. Облизывался на 5-ый (мол, там есть статические переменные).
Оказывается и там не все хорошо (см, например, здесь).

В двух словах: в PHP совершенно неудобная работа со статическими членами класса, как минимум, в части, касаемой наследования.
В PHP 4 для замены статической переменных можно использовать, например, getStaticProperty из PEAR. НО! В пределах одного класса.
Чтобы вызывать статический метод из родительского класса - нужно либо передавать дополнительный параметр - имя класса ;(, либо (только в пятом?) использовать предложенный [info]svetasmirnova способ

В общем, начал мечтать о том, что появится новая константа __NOW_CLASS__, содержащая имя класса, в котором и выполняется текущий метод, а не существующего с PHP 4.3 __CLASS__ - имя класса, в котором он был определен...

PS: Кстати, почему внутри класса нельзя делать include?.. Раз уж внутри функции можно...

PPS: Возникла изуверская мысль: нафигачить исходники Си-like макросами, прогнать С-препроцессором, если надо - еще и Zend Encoder, и только потом выкладывать на хостинг ;)
Метки: ,
cat

[php] из фидо...

буду показывать всем новопоступающим ко мне на "тьюторство".
И фиг у них проект приму без (1)-(3). И пусть не говорят, что не предупреждали ;)

Стибрено из ФИДОшной конфы RU.PHP.

MSGID: ddt.demos.su 714cb325
REPLYADDR: Dmitry Pljonkin <dm2029@mail.domonet.ru>



> p.s. учимся уважать других программеров? 8)
>


Programmers Respect Initiative =)

1. Разделение бизнес-логики и html-представления
2. Подробные комментарии
3. Использоваине кодинг-стандартов - PHP или PEAR Coding Standard
4. Если требуются какие-то специфичные вещи (типа запуска скриптов
cron'ом) - обязательно отдавать заказчику с сайтом документацию.
Метки: ,

24 Дек, 2004

cat

[php] надоело!

Надоело мучаться с псевдо-CMS, с которой приходится иметь дело по работе.
Надоело каждый раз делать туеву кучу проверок.

Вы будете смеяться, господа, но я решил написать framework :)

мысли по поводу )

а еще хочется все это делать на Test-Driven Developmnent... Объяснил бы кто, как делать TDD для работы БД.

</p>
Метки: , ,

22 Дек, 2004

cat

[php] хочушка

update: Возрадуемся! (с)
Уже есть.


ЖЖ-юзер [info]mourk выкладывал ноябрьский выпуск журнала php|architect.
Уже вышел декабрьский номер.

Ломает. Хочу.

PS: Яндекс ничего о крякнутых версиях не знает. Жаль.
Метки: ,