пожелания и насколько бросившихся в глаза ньюансов :)
Misha v.3 28.08.2007 17:51
- не вижу необходимости таскать в каждом классе интерпретируемого языка много лишних букв. как минимум можно смело удалять из .p все упоминания меня. я переживу. если очень хочется -- можно оставить их в README :)
- может тексты вынести, а комментарии написать на английском? я до сих пор мучаюсь из-за своих старых русских текстов/комментов в классах, хотя уже пару лет как перешел на UTF внутри.
-
@today[]
^pfAssert:fail[Вызов функции абстрактного класса.]
@now[]
^pfAssert:fail[Вызов функции абстрактного класса.]
@year[sSource]
^pfAssert:fail[Вызов функции абстрактного класса.]
прикольно конечно, но может...
pfClass.p
$sAbstractMethodCall[Вызов функции абстрактного класса.]
и потом где надо:
@ymd[sSource]
^pfAssert:fail[$sAbstractMethodCall]
- isEmail устарел. по крайней мере мне за то регулярное выражение, которое сейчас висит в pfString писали багрепорты раз в месяц. :) при этом есть pfValidate:isValidEmail с другим функционалом...
- pfValidate:isExistingURL -- я бы взял в ^untaint[as-is]{} $aString
- pfCache:_hash2table -- работает без описанных локальных переменных k и v и с рекурсивным вызовом чисто случайно :)
это нехороший хак (переменная перезаписывается, но лишь после этого она не используется). не хорошо так делать. да и $v у нас есть в foreach-е, так что можно не писать $aHash.$k =>
@_hash2table[aHash;aParent][lUID;k;v]
## Преобразует хэш строк в таблицу
## Параметр aParent передавать не нужно
$result[^table::create{key parent value isHash uid}]
^aHash.foreach[k;v]{
$lUID[^math:uid64[]]
^if(!def $aParent){$aParent[NULL]}
^result.append{$k $aParent ^if($v is hash){ 1}{$v 0} $lUID}
^if($v is hash){
^result.join[^_hash2table[$v;$lUID]]
}
}
до кучи можно изначальную пустую таблицу генерить разово в класс, и потом при необходимости копировать:
$result[^table::create{key parent value isHash uid}]
^if(!def $tEmpty){
$tEmpty[^table::create{key parent value isHash uid}]
}
$result[^table::create[$tEmpty]]
я когда-то тестировал подобное, и копирование таблицы оказалось выгоднее, чем её создание на основании текста (и я остановился на варианте копирования), но это было давно.
- pfCache:_table2hash
^result.add[$.[$lLevel.key][$lLevel.value]]
=>
$result.[$lLevel.key][$lLevel.value]
добавлять один ключ так быстрее. да и два тоже быстрее. я тестировал :)
в варианте с .add сначала происходит создание хеша, потом его элемент(ы) переписываются. т.е. созданый хеш сразу-же становится не нужен. вариант добавления элемента сразу добавляет элемент.
- Библиотека PF, Sumo [M] 24.08.2007 18:25
- Вопроса про работу с модулями, Rafael 07.09.2007 12:40
- пожелания и насколько бросившихся в глаза ньюансов :), Misha v.3 [M] 28.08.2007 17:51
- Ответ, Sumo [M] 28.08.2007 18:06
- Рельсы, Sanja v.2 [M] 27.08.2007 13:29
- Несколько вопросов, Rafael 27.08.2007 11:15
- Ответ, Sumo [M] 27.08.2007 11:38 / 27.08.2007 11:39
- И еще..., Sumo [M] 27.08.2007 11:43
- ОК, Rafael 27.08.2007 13:04
- хотелось бы увидеть примеры работы с sql и авторизацию (-), off 26.08.2007 18:41
- Шаблоны и Templet, off 26.08.2007 16:22
- добавление модуля блога, off 26.08.2007 15:35
- no base class declared, off 26.08.2007 11:19
- Маньяки... (-), Rafael 25.08.2007 23:24
- мощно! автору респект, dev 25.08.2007 22:24
- круть! (-), Misha v.3 [M] 25.08.2007 11:09
- Очень здорово, спасибо!, KLeN 24.08.2007 23:40
- Это круто, будем изучать, G_Z [M] 24.08.2007 21:11