Лицензия MS отличается от лицензии PHP, есть ли припятствия для включения в дистр драйвера?
This software has been compiled and tested under PHP 5.2.6 and PHP 5.2.4
using the Visual C++ 2005 Express and Visual C++ 2008 Standard compilers
а компиляторы тоже платные?
Даже если не будет смарти - ничего страшного не случиться, есть куча смартисовместимых движков, приведу их в порядке удачности: Quicky
Quicky - hi-end шаблонизатор написанный на PHP отличающийся гибкой функциональностью, и, в то же время, высокой производительностью. За основу взят синтаксис и функционал Smarty. Домашняя страница
От себя: очень приятный по скрости движок, в некоторых местах прирост скорости до 10 раз, из минусов лицензия и отсутвие phpDOC комментов в коде.
Lapa
Lapa, сокращенно от La page du lapin, что в переводе с албанского может означать (Кролик Точит Ваши Страницы) и это библиотека для обработки шаблонов в ваших проектах, сколько бы сложными они не были. Домашняя страница
Smarty Lite Домашняя страница
От себя: давным давно, когда я его пробовал использовать были проблемы с кешированием и компилированием (точнее с записью файлов, появлялись пустые файлы)
1) http://www.php.net/manual/ru/language.oo… пример 6.
2) извиняюсь, тут arrayAccess вмешивается, но в общем случае именно так. class xxx
{
private $test = 123;
function ___get($Name)
{
echo $Name;
}
}
$q = new xxx();
$q->test;
про xml 2 array в моем посте я упомянул, потому что обертку к libxml нельзя называть парсером, парсер - прямая работа с xml документом. см код.
1) $this->pointer = &$this; public function &appendChild($tag, $attributes)
в php5 обьекты передаются по ссылке, spl требует php5, зачем ставить ссылку? (сами же об этом пишите)
2)
стоит учитывать что __get не сработает при обращении к private $pointer;
private $tagName;
private $attributes = array();
private $cdata;
private $parent;
private $childs = array();
а значит некоторые теги придется "потерять"
3)
не плохо бы ввести методы __isset() и __unset()
лично я бы сделал бы более контролируемую систему $accept_encoding = isset($_SERVER['HTTP_ACCEPT_ENCODING']) ? $_SERVER['HTTP_ACCEPT_ENCODING'] : $_SERVER['HTTP_TE'];
$accept_encoding = explode(',', $accept_encoding);
foreach ($accept_encoding as $encoding)
{
$encoding = trim($encoding);
if ($encoding == ('gzip' || 'x-gzip'))
{
$encoding = 'gzip';
break;
}
if ($encoding == 'deflate')
{
break;
}
}
$this->encoding = $encoding;
if ($this->encoding == 'gzip')
{
$buffer = gzencode($Source, $this->compressionLevel);
}elseif ($this->encoding == 'deflate')
{
$buffer = gzdeflate($Source, $this->compressionLevel);
}else
{
$buffer = $Source;
}
еще бы обязательно добавил такие заголовки setHeader('Content-Encoding', $this->encoding);
setHeader('Vary', 'Accept-Encoding');
и не забыл бы проверить что вообще можно жать так if (!headers_sent() && extension_loaded("zlib") && !empty($Source) && (isset($_SERVER['HTTP_ACCEPT_ENCODING']) || isset($_SERVER['HTTP_TE'])))
http://www.onlinedisk.ru/conditions/
- Файл доступен для скачивания в течение 60 дней с момента последнего скачивания. По истечении указанного срока файл автоматически удаляется.
http://habrahabr.ru/blog/startup/47632.html
- время хранения файлов неограниченно
short_open_tag = Off
стоит учитыватьавтодополнение в эклипсе работает также как и для любого др обьекта/класса
This software has been compiled and tested under PHP 5.2.6 and PHP 5.2.4
using the Visual C++ 2005 Express and Visual C++ 2008 Standard compilers
а компиляторы тоже платные?
Quicky
Quicky - hi-end шаблонизатор написанный на PHP отличающийся гибкой функциональностью, и, в то же время, высокой производительностью. За основу взят синтаксис и функционал Smarty.
Домашняя страница
От себя: очень приятный по скрости движок, в некоторых местах прирост скорости до 10 раз, из минусов лицензия и отсутвие phpDOC комментов в коде.
Lapa
Lapa, сокращенно от La page du lapin, что в переводе с албанского может означать (Кролик Точит Ваши Страницы) и это библиотека для обработки шаблонов в ваших проектах, сколько бы сложными они не были.
Домашняя страница
Smarty Lite
Домашняя страница
От себя: давным давно, когда я его пробовал использовать были проблемы с кешированием и компилированием (точнее с записью файлов, появлялись пустые файлы)
2) извиняюсь, тут arrayAccess вмешивается, но в общем случае именно так.
class xxx
{
private $test = 123;
function ___get($Name)
{
echo $Name;
}
}
$q = new xxx();
$q->test;
про xml 2 array в моем посте я упомянул, потому что обертку к libxml нельзя называть парсером, парсер - прямая работа с xml документом. см код.
$this->pointer = &$this;
public function &appendChild($tag, $attributes)
в php5 обьекты передаются по ссылке, spl требует php5, зачем ставить ссылку? (сами же об этом пишите)
2)
стоит учитывать что __get не сработает при обращении к
private $pointer;
private $tagName;
private $attributes = array();
private $cdata;
private $parent;
private $childs = array();
а значит некоторые теги придется "потерять"
3)
не плохо бы ввести методы
__isset()
и__unset()
ps интересующимся могу предложить вариант написанный с использованием строковых функций парсер xml 2 array() http://weblancer.net/download/portfolio/…
лицензия тоже подходящая
$accept_encoding = isset($_SERVER['HTTP_ACCEPT_ENCODING']) ? $_SERVER['HTTP_ACCEPT_ENCODING'] : $_SERVER['HTTP_TE'];
$accept_encoding = explode(',', $accept_encoding);
foreach ($accept_encoding as $encoding)
{
$encoding = trim($encoding);
if ($encoding == ('gzip' || 'x-gzip'))
{
$encoding = 'gzip';
break;
}
if ($encoding == 'deflate')
{
break;
}
}
$this->encoding = $encoding;
if ($this->encoding == 'gzip')
{
$buffer = gzencode($Source, $this->compressionLevel);
}elseif ($this->encoding == 'deflate')
{
$buffer = gzdeflate($Source, $this->compressionLevel);
}else
{
$buffer = $Source;
}
еще бы обязательно добавил такие заголовки
setHeader('Content-Encoding', $this->encoding);
setHeader('Vary', 'Accept-Encoding');
и не забыл бы проверить что вообще можно жать так
if (!headers_sent() && extension_loaded("zlib") && !empty($Source) && (isset($_SERVER['HTTP_ACCEPT_ENCODING']) || isset($_SERVER['HTTP_TE'])))
ps извиняюсь за поток сознания
http://ru2.php.net/manual/ru/function.ob…
ps не забываем про
http://sysoev.ru/mod_deflate/ - модуль для apache
http://sysoev.ru/nginx/docs/http/ngx_htt… - модуль для nginx
подробнее: http://blogs.popmech.ru/post/69055/
см. http://habrahabr.ru/blog/humour/47674.ht…
>НЕОГРАНИ'ЧЕННЫЙ, ая, ое; -чен, ченна, ченно.
>Не стесненный никакими ограничениями, пределами
рекомендую сменить формулировку.
- Файл доступен для скачивания в течение 60 дней с момента последнего скачивания. По истечении указанного срока файл автоматически удаляется.
http://habrahabr.ru/blog/startup/47632.html
- время хранения файлов неограниченно
не стыкуется ;)