Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.04.2010, 16:52
Koc Koc вне форума
Аспирант
Отправить личное сообщение для Koc Посмотреть профиль Найти все сообщения от Koc
 
Регистрация: 21.09.2009
Сообщений: 59

[php] Велосипедные библиотеки
Пишу комплекс библиотек, что-то типа fw. Что уже есть:

Request (get, post, files, чтение cookies),
Response (установка cookies, headers),
Validator (форм),
Tralslate (локализация, с plural-формами, можно писать разные драйвера: gettext, DB),
Router (ЧПУ),
Settings (read only, phpArrays),
Paginator (только расчеты, отрисовка страниц делается через шаблоны),
Template (надстройка над Twig),
Database (надстройка над mysqli, свои типизированные плейсхолдеры).

В процессе Auth.

http://code.google.com/p/bicycle-libraries/
Ответить с цитированием
  #2 (permalink)  
Старый 06.04.2010, 16:59
Koc Koc вне форума
Аспирант
Отправить личное сообщение для Koc Посмотреть профиль Найти все сообщения от Koc
 
Регистрация: 21.09.2009
Сообщений: 59

Доступ к репозиторию (read-only, Mercurial)
Код:
hg clone https://bicycle-libraries.googlecode.com/hg/ bicycle-libraries
Примеры работы:
/* исходные данные */
$_POST['foo'] = 'bar';
$_GET['a'] = 1;
$_FILES['fileField1'] = array(
	'name'     => 'MyFile0.jpg',
	'type'     => 'image/jpeg',
	'tmp_name' => '/tmp/php/php6hst32',
	'error'    => 0,
	'size'     => 98174
);

$_FILES['fileField2'] = array(
	'name' => array(
		'MyFile1.txt',
		'MyFile1.jpg'
	),
	'type' => array(
		'text/plain',
		'image/jpeg'
	),
	'tmp_name' => array(
		'/tmp/php/php1h4j1o',
		'/tmp/php/php6hst32'
	),
	'error' => array(
		0,
		0
	),
	'size' => array(
		123,
		98174
	)
);


/* после подкл. core/bootstrap.php */
$_r = BL_Request::instance();
$_r->get->foo;  // NULL
$_r->post->foo; // 'bar'
$_r->foo;       // 'bar' (from request)
$_r->post->c = 'd';
$_r->post('c'); // 'd'

// ArrayAccess тоже работает
$_r['post']['c']; // 'd'

// не забываем про файлы
$request->files('fileField1'); // ассоциативный массив
$request->files('fileField2'); // список из ассоциативных массивов

Последний раз редактировалось Koc, 06.04.2010 в 17:01.
Ответить с цитированием
  #3 (permalink)  
Старый 06.04.2010, 17:04
Koc Koc вне форума
Аспирант
Отправить личное сообщение для Koc Посмотреть профиль Найти все сообщения от Koc
 
Регистрация: 21.09.2009
Сообщений: 59

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

ps: сорри за 3 поста подряд, привык к склейке
Ответить с цитированием
  #4 (permalink)  
Старый 06.04.2010, 19:42
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

делать объектную обертку вокруг суперглобальных массивов, мягко говоря не самая лучшая идея
если все остальное также происходит, то библиотека достойна только смерти, медленной и мучительной
PS в форуме есть возможность редактирования постов, чтобы не оставлять дабл и трипл-постов
Ответить с цитированием
  #5 (permalink)  
Старый 06.04.2010, 21:36
Koc Koc вне форума
Аспирант
Отправить личное сообщение для Koc Посмотреть профиль Найти все сообщения от Koc
 
Регистрация: 21.09.2009
Сообщений: 59

я в курсе про редактирование, но склейка не лишняя =).

Цитата:
Последний раз редактировалось Koc, Сегодня в 16:01.
а чем собственно говоря обертка над $_(GET|POST|COOKIE|FILES) не нравится? У sf есть похожая, во 2 ветке - называется RequestHandler, и сегодня туда были добавлены акцессоры к COOKIE и FILES.

Вполне логично, когда в системе есть объекты Request и Response.
Ответить с цитированием
  #6 (permalink)  
Старый 06.04.2010, 22:12
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Koc
а чем собственно говоря обертка над $_(GET|POST|COOKIE|FILES) не нравится?
А зачем? В чём профит?
Ответить с цитированием
  #7 (permalink)  
Старый 06.04.2010, 22:37
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от Kolyaj
А зачем? В чём профит?
+1
Koc, кроме лишних тормозов, еще что-то по вашему это дает?
Ответить с цитированием
  #8 (permalink)  
Старый 06.04.2010, 22:59
Koc Koc вне форума
Аспирант
Отправить личное сообщение для Koc Посмотреть профиль Найти все сообщения от Koc
 
Регистрация: 21.09.2009
Сообщений: 59

1) более удобный доступ к файлам. К примеру выше
$request->files->fileField2 // тут структура будет не такая, как в $_FILES['fileField2']
/*
	array (
		'name' => 'MyFile1.txt',
		'type' => 'text/plain',
		'size' => 123,
		'tmp_name' => '/tmp/php/php1h4j1o',
		'error' => 0
	),
	array (
		'name' => 'MyFile1.jpg',
		'type' => 'image/jpeg',
		'size' => 98174,
		'tmp_name' => '/tmp/php/php6hst32',
		'error' => 0
	 )
*/


2) не будет нотайсов в случае если запрошенные ключи в массиве отсутствуют

3)можно подставлять значения по-умолчанию, если ключи не объявлены
$request->cookies('cookie', 'default value');


4) обернутый $_REQUEST ($_r->request) не будет "загажен" куками.

5) в случае установки кук через Response они сразу же будут доступны в Request'е

6) Аяксовый у нас запрос пришел? $_r->isAjax(); А может быть мы отправляли файлы через iframe? $_r->isIframed();

7) Запрос аяксовый (а значит данные в UTF-8), но наш проект в cp1251? Да нивапрос, Request сам все разрулит и конвертнет пришедшие данные в кодировку проекта

8) на сервере включены mq_gpc? Request задетектит это и пройдется по данным через stripslashes
Ответить с цитированием
  #9 (permalink)  
Старый 06.04.2010, 23:04
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Koc,
ок. Хотя местами перебор (7, например).
Ответить с цитированием
  #10 (permalink)  
Старый 06.04.2010, 23:23
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

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

Последний раз редактировалось Gvozd, 06.04.2010 в 23:26.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание Новой Библиотеки JavaScript Rudolf Eremyan Элементы интерфейса 9 21.09.2009 22:45
Сторонние библиотеки - быть или не быть? IIIEPJIOK Оффтопик 64 21.03.2009 19:39
Только библиотеки? kalisha Элементы интерфейса 8 31.08.2008 16:38
Тестирование функции библиотеки AnimaJS Библиотеки/Тулкиты/Фреймворки 2 26.06.2008 22:45
Обзор и выбор библиотеки. Phoenix AJAX и COMET 2 24.02.2008 16:08