Здесь вы найдете мои заметки разработчика на php, html, xml, xsl, xslt, ajax и еще много умных и модных слов.

2007-11-22

php умеет делать красоту

Офигетительно

Только что вот пытался запустить проект на локалке. Понимал что Zend Framework сейчас будет делать throw exception'ов разных, но я был поражен. Челюсть висит до сих пор и наверное пойду выпью чай от восхищения. Как это и почему - возможно в другой раз разберусь, а пока - работа ждет.


UPD: Я так понял все exception'ы так обрабатываются + trigger_error'ы

2007-11-02

Рас ОС не стает браузером, браузер стает ОС

FireFox меня поражает снова и снова. Нашел плагин для работы с SQLite. Пошел тестить.

2007-10-23

Zend Studio Neon - еще один маленький недочет

О еще одном недочете я сообщил зендовцам. Вот текст сообщения:

Hi. It seems to be not too smart in here. You could make studio work faster just cause it is parsing same thing twice (+ it gives two different links to one file):

http://shareua.com/fullimg/2e39c0/snimok14.png

I've clicked with Ctrl to Kost_DbTree_Field and it showed me two ways to one file :)
Thanx.

2007-10-12

Еще одна бага в ZS Neon

Нашел еще одну багу в ZS neon :) Файл для PHPUnit генерируется с тестингом ф-ций. Так вот если у вас была ф-ция setTable он ее превращает в SetTable (первую букву поднимает).

Пример неправильной генерации:


/**
* Tests Kost_DbTree->SetTable()
*/
public function testSetTable () {
// TODO Auto-generated Kost_DbTreeTest->testSetTable()
$this->markTestIncomplete ( "SetTable test not implemented" ) ;

$this->Kost_DbTree->SetTable(/* parameters */) ;

}


http://pastebin.mozilla-russia.org/90198

Zend Studio Neon - недочет

Вот такой вот недочет.

if (!isset($a))
    print ":(";

http://pastebin.mozilla-russia.org/90197

Подсвечивает и говорит что мол "переменная $a не задана".

2007-10-11

Eclipse + SQLite


Работая с PDT (бесплатный и очень урезанный Zend Studio) я решил попробовать работать с БД через средства eclipse'а.

Шаг 1. Подключение работы с БД в eclipse. Используем eclipsesql. Для этого заходим в меню Help->Software Updates->Find and Install..., добавляем новое зеркало http://eclipsesql.sourceforge.net/ и устанавливаем сию фичу.

Шаг 2. Драйвер sqlite. Для установки sqlite необходимо еще немного усилий. Дело в том, что драйвера sqlite там по умолчанию нету. Качаем его по адресу http://www.zentus.com/sqlitejdbc/ качаем PureJava-версию. Потом делаем "New Connection Profile", там выбираем "New Driver". Во вкладке Extra Class Path выбираем наш jar-файл, потом жмем List Drivers и получаем искомый. Все. Появился драйвер. Далее должно быть понятно.

2007-09-11

Firefox :: AdBlock plus :: GMail-реклама

Чтоб порезать рекламу в GMail'е (когда письма читаете она справа отображается) при помощи всем известного плагина AdBlock plus для браузера FireFox надо написать всего одну инструкцию:
mail.google.com#div(class^=rh)
Либо еще вариант -- просто подписаться на список EasyList Element

2007-09-10

Firefox :: одновременно запустить несколько профилей

Ну вот, я столько страдал а оказалось что это возможно! Если один профиль запущен можно запустить другой просто дописав параметры:

Проверено для Windows: firefox -no-remote -P
Не проверено Linux: firefox -ProfileManager

2007-06-20

Еще раз о пользе Explain в MySQL

Джастин Сильвертон написал небольшую заметку об использовании команды explain для получения подробной информации о результатах выполнения SQL-запросов.



Взято: phpinside.ru





Powered by ScribeFire.

2007-06-19

HTML5 уже в разработке. Что нового?

Консорциум W3 начал разработку нового стандарта HTML. Уже сейчас известно, какие новшества предположительно будут введены в HTML5.



Источник1: http://phpinside.ru/

Источник2: http://w3.org/





Powered by ScribeFire.

2007-05-22

Проекты, основанные на Zend Framework

Блог Zend-разработчиков выпустил статью, посвященную проектам, разработанным при помощи Zend Framework.



Recently an email was sent to the Zend Framework General List that mentioned the fact that there are now several projects on SourceForge based on the Zend Framework. There are actually 7,187 projects if you just search for Zend Framework but if you put search for Zend Framework in quotes, we get down to the 17 we really want. Here is a rundown of most of them.



Честно говоря - не сильно впечатлило, как бы мне не нравилась политика Zend Framework. Но ощущение зарождаемости все равно есть, так что я лично отказываться пока не буду.



Powered by ScribeFire.

2007-05-16

Голосовалки (рейтинги)

Товарисч Maurice Fonk в своем блоге написал очередную статью о своем проекте "Charts". Здесь он делает отличный инструмент о создании так называемых "рейтингов" или "диаграмм".



Преимущество именно его диаграмм в том, что

  1. Они полностью сделаны на js/css/html
  2. Красотища
  3. Кросс-браузерность



Страничка проекта, "playground" автора.



Powered by ScribeFire.

2007-05-11

Smarty и Zend Framework

Maurice Fonk написал довольно таки симпатичную, короткую статью об использовании Smarty внутри Zend Framework.
Like I’ve mentioned in previous posts, I’m a great fan of using
“decent” template engines, and try to avoid writing views in php. I
don’t want to discuss the reasons behind this in detail right now. I
just believe that limiting yourself to a small set of template tags
makes you think more about structuring your output and separating logic
from design. Which is a good thing.

Если вы работаете с Zend Framework вам будет полезна данная статья, да и весь блог тоже.

Источник: Zend Developer Zone

Powered by ScribeFire.

70 советов экспертов для лучшего кодинга на CSS

Здесь представлена отличная статья (язык: английский). В статье описаны основные ошибки при использовании CSS и их устранения. Показаны примеры правильного CSS-кодинга. Статья очень грамотная и полезная. Всем советую.



http://www.smashingmagazine.com/2007/05/10/70-expert-ideas-for-better-css-coding/





Powered by ScribeFire.

2007-04-03

Пишем консольные скрипты

Иногда удобно написать консольный скрипт и запускать из-под far-manager'а, к примеру типа

d:\php\php-cgi.exe somescript.php

Вот. Для более легкого писания советую делать так.

init.php
<?php
define('ROOT_DIR', getcwd());

ini_set('html_errors', FALSE);
ini_set('implicit_flush', TRUE);
ini_set('max_execution_time', 0);
ini_set('register_argc_argv', TRUE);

$stdin = fopen('php://stdin', 'r');
$stdout = fopen('php://stdout', 'w');
$stderr = fopen('php://stderr', 'w');


destruct.php
<?php
fclose($stdin);
fclose($stdout);
fclose($stderr);


script.php
<?php
require('init.php');
...
require('destruct.php');

2007-03-29

Скачивание файла

Если вы хотите чтоб ваш файл скачивался, а не открывался браузером, просто пошлите следующий хедер:


header('Content-Disposition: attachment; filename="blabla.html"');

2007-03-20

Javascript code prettifier test

Отличная вещь "Code Prettifier". Если вам нужно показать какой-нибудь код на своей страничке или в своем блоге - сделайте это просто.


$s = "Hello, world!";
for ($i=0; $i < strlen($s); i++) {
print $s[$i];
}

Для установки этого девайса необходимо всего лишь:


  • Подключить .css и .js-файлы

    <link href="prettify.css" type="text/css" rel="stylesheet" />
    <script type="text/javascript" src="prettify.js"></script>

  • Добавить onload="prettyPrint()" в тэг body вашего документа.

  • Изменить стили так как вам нравится


Вот и все. Пользоваться тоже очень просто. <pre class="prettyprint">...</pre или <code class="prettyprint">[код]</code>

Замечание! Экранируйте значек "меньше" (<) при помощи &quot;. А вместо " используйте кавычки " для строчных разделителей

На следующей страничке вы можете проверить, насколько ваш броузер поддерживает сей инструмент.


Удачи :)

2007-03-04

свойство min-height для Internet Explorer (IE)

Вот, понадобилось мне недавно сделать свойство min-height в сайте, но, как известно, ослик не воспринимает подобного. Что делать? Проблема решается просто.

min-height: 200px;
_height: 200px; /* хак для IE */

2007-03-03

Вывод ошибок

Дабы выводить ошибки на экран достаточно сделать вот так:

error_reporting(E_ALL | E_STRICT);
if (ini_get('display_errors') != 1) { // проверяет значение опции display_errors
ini_set('display_errors', 1); // включает вывод ошибок вместе с результатом работы скрипта
};

2007-02-02

Валидная вставка флешки (следуем w3c-стандартам)

Тег "embed" не одобряется w3c-стандартами, а посему надо че-то делать. В гугле можно найти длинные статьи на эту тему, я же не буду многословен.

Вставлять флешку правильно вот так:

<a style="left: 865px ! important; top: 0px ! important;" class="abp-objtab visible ontop" href="http://www2.blogger.com/images/hat.swf"></a><object type="application/x-shockwave-flash" data="./images/hat.swf" height="211" width="865"> <param name="movie" value="./images/hat.swf"><img src="http://www2.blogger.com/images/top.jpg" alt="Шляпа" height="211" width="865" /></object>

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

2007-01-29

Абсолютные пути

Используйте абсолютные, а не относительные пути. Берем, допустим, файл init.php, лежащий в корне сайта и пишем в нем:

define('ROOT_DIR', dirname(__FILE__) . '/');

Вот и все. Теперь юзаем ROOT_DIR и опираемся на него.

2007-01-22

Используем AJAX

Я - человек, не сильно интересующийся AJAX'ом, да и вообще JavaScript'ом в целом, так как он мне ужасно не нравится. Тем не менее, с ним приходится сталкиваться каждый день, и каждый день исправлять кривые скрипты, работающие только лишь для господина ослика (ИЕ) и то с ошибками.

И тут мне понадобилось работать с ajax'ом в полной мере. Первый шаг, который надо сделать - выбрать класс для работы с ним. Как это сделать? Будем думать.

На самом деле главным вопросом было: использовать мне скрипт с сайта http://dklab.ru под названием JsHttpRequest или нет. Казалось бы: вещь пропиареная по полной программе, вроде как одна из самых кроссбраузерных и т.д. и т.п. - но с другой стороны не слишком ли тяжело ею пользоваться?

Напишем простенький пример использования. Точнее, возьмем сложный пример и "сдерем" его к себе в простой пример. Итак, драть будем с http://dklab.ru/lib/.../test_all.php . Исходник Загрузчика - http://dklab.ru/lib/.../load.phps .

Вот что получаем для себя:
test.html
1.php
Также имеем файлы
JsHttpRequest/JsHttpRequest.js
и
JsHttpRequest/JsHttpRequest.php
(качаются по ссылке выше)

ИМХО, замечательно. Все работает, все кроссбраузерно.
Не проще ли было делать вместо всех этих req.responseJS.content все пихать в req.responseText ? Нет. Не проще. Вывод responseText мы со временем скроем и иногда будем показывать для просмотра отладочной информации. Это очень удобно.

2007-01-21

IE7 standalone

Позволяет иметь на одной машине IE6 и IE7 вместе.

http://tredosoft.com/files/IE7s/IE7S-setup.exe

Details: http://tredosoft.com/IE7_standalone

If you have IE7 already installed then you need to uninstall it first to restore IE6 on your machine.

Взято с rsdn.ru