в простом варианте - модуль/action/paramsда ну, это ж гавно
Форум → Программирование → PHP для идиотов → генерация URL's
генерация URL's
Страницы: ← Предыдущая страница • Следующая страница →
-
6 июня 2010 г. 12:55, спустя 1 минуту 19 секунд
смотри сюда http://www.slideshare.net/fabpot/symfony-components-3393116 с 91 страницы и поймешь, что я хочуСпустя 22 сек. -
6 июня 2010 г. 12:58, спустя 2 минуты 9 секунд
могу даже не смотреть, думаю понимаю что ты хочешь
смотри сюда http://www.slideshare.net/fabpot/symfony-components-3393116 с 91 страницы и поймешь, что я хочуСпустя 22 сек.в простом варианте - модуль/action/params
да ну, это ж гавноСпустя 110 сек.глянул … ничего новогоСапожник без сапог -
6 июня 2010 г. 13:10, спустя 12 минут 25 секунд
12000
хуяссе
ну так вот, и что - тебе не понравилось?) -
6 июня 2010 г. 13:33, спустя 23 минуты 21 секунду
У меня есть много всякой финги. Певрое - обычная адресация. Вторая - выбирается по типу запроса (с ЧПУ и без):class KCZ_Locator {
/**
* @var string
*/
private $_Root;
/**
* @var array
*/
private $_Vars;
/**
* @var array
*/
private $_Values;
/**
* @var string
*/
private $_LastLocation;
/**
* @static
* @param $Root index
* @return KCZ_Locator
*/
public static function Create($Root = 'index')
{
return new KCZ_Locator($Root);
}
/**
* @param string $Base
*/
public function __construct($Root)
{
$this->_Vars = array();
$this->_Values = array();
$this->_LastLocation = NULL;
$this->_Root = $Root;
}
/**
* @param string $Var
* @return KCZ_Locator
*/
public function AddVar($Var)
{
$this->_Vars[] = $Var;
$this->_LastLocation = NULL;
return $this;
}
/**
* @param string $Value
* @return KCZ_Locator
*/
public function AddValue($Value)
{
$this->_Values[] = $Value;
$this->_LastLocation = NULL;
return $this;
}
/**
* @return string
*/
public function GetLocation()
{
if(NULL === $this->_LastLocation) {
$this->_LastLocation = $this->_CreateLocation();
}
return $this->_LastLocation;
}
/**
* @static
* @param string $UrlToLocate
* @param bool $Exit TRUE
*/
public static function Locate($UrlToLocate, $Exit = TRUE)
{
header('Location: ' . $UrlToLocate);
if($Exit) {
exit(0);
}
}
/**
* @return string
*/
private function _CreateLocation()
{
$Location = '';
$CountVars = count($this->_Vars);
for($i = 0; $i < $CountVars; $i++) {
$Location .= $this->_Vars[$i] . '=' . ((isset($this->_Values[$i])) ? urlencode($this->_Values[$i]) : '') . '&';
}
return ($Location) ?
($this->_Root . PHP_EXT . '?' . (KCZ_Str::Substr($Location, 0, KCZ_Str::Strlen($Location) - 1))) :
($this->_Root . PHP_EXT);
}
}class KTF_Locator {
/**
* @var array
*/
private $_Vars;
/**
* @var array
*/
private $_Values;
/**
* @var string
*/
private $_LastLocation;
/**
* @static
* @return KTF_Locator
*/
public static function Create()
{
return new KTF_Locator();
}
public function __construct()
{
$this->_Vars = array();
$this->_Values = array();
$this->_LastLocation = NULL;
}
/**
* @param string $Var
* @return KTF_Locator
*/
public function AddVar($Var)
{
$this->_Vars[] = $Var;
$this->_LastLocation = NULL;
return $this;
}
/**
* @param string $Value
* @return KTF_Locator
*/
public function AddValue($Value)
{
$this->_Values[] = $Value;
$this->_LastLocation = NULL;
return $this;
}
/**
* @return string
*/
public function GetLocation()
{
if(NULL === $this->_LastLocation) {
$this->_LastLocation = $this->_CreateLocation();
}
return $this->_LastLocation;
}
/**
* @static
* @param string $UrlToLocate
* @param bool $Exit TRUE
*/
public static function Locate($UrlToLocate, $Exit = TRUE)
{
header('Location: ' . $UrlToLocate);
if($Exit) {
exit(0);
}
}
/**
* @return string
*/
private function _CreateLocation()
{
$Location = '';
$CountVars = count($this->_Vars);
$i = 0;
while($i < $CountVars) {
if(KTF_Request::GetRequestMode() == KTF_Request::RM_NORMAL) {
$Location .= $this->_Vars[$i] . '=' . ((isset($this->_Values[$i])) ? urlencode($this->_Values[$i]) : '') . '&';
}
else {
$Location .= $this->_Vars[$i] . '/' . ((isset($this->_Values[$i])) ? urlencode($this->_Values[$i]) . '/' : '');
}
$i++;
}
$Location = rtrim($Location, '/');
if(KTF_Request::GetRequestMode() == KTF_Request::RM_NORMAL) {
if($Location === '') {
$Location = 'index' . PHP_EXT;
}
else {
$Location = 'index' . PHP_EXT . '?' . (KTF_Str::Substr($Location, 0, KTF_Str::Strlen($Location) - 1));
}
}
else {
$CountValues = count($this->_Values);
while($i < $CountValues) {
$Location .= '/' . urlencode($this->_Values[$i]);
$i++;
}
$Location = KTF_Request::GetBaseUri() . $Location;
}
return $Location;
}
}
и что с предварительным просмотром? нифига нельзя посмореть -
6 июня 2010 г. 13:45, спустя 11 минут 44 секунды
ну это нифига не похоже на то изящное решение, которое предлагает sf2))
а чем эти 2 класса друг от друга-то отличаются? -
6 июня 2010 г. 13:53, спустя 7 минут 52 секунды
а чем эти 2 класса друг от друга-то отличаются?
знанием о наличие ЧПУ в проекте. Это древний код, просто ты создал топик - я кинул кода. Вот и форум получился ))которое предлагает sf2
я флешь плеер удалил нафиг… -
6 июня 2010 г. 22:41, спустя 8 часов 48 минут 1 секунду
Абырвалг, отчего ты решил что "модуль/action/params" говно!? Ты даже не велосипед стараешься опровергнуть, а круглость колеса, так как если ОЧЕНЬ много проектов юзают эту схему и все у них работает на все 100%, то тут и думать нехуй - это хорошая схема.
Да и в целом поюзав роутер у Коханы я понял, что пусть у неё и крутяцкий роутер (у третей версии), но все равно он нужен в большинстве случаев либо для показа крутости разработчика либо же как и в случае с собакой, которой нечего делать. и она себе находит известное всем занятие :) -
6 июня 2010 г. 22:51, спустя 9 минут 33 секунды
для админки соедеть. Сам такой там использую. Но для фронтенда - ни в коем случае. Это отстой -
6 июня 2010 г. 23:01, спустя 10 минут 31 секунду
ты как велосипедист, ездящий на велике, нО! но ты от него отличаешься тем, что сам себе камни на дорогу разбрасываешь :)
для админки соедеть. Сам такой там использую. Но для фронтенда - ни в коем случае. Это отстой
вроде и едешь, но с запинками. нахуй тебе этот роутерс файл? это же хуета, это от силы первичный роутер для показки крутости и не больше, а знаешь что я подскажу? для сео круче не такой роутер, а возможность любой странице дать ЛЮБОЙ урл, но тут роутер соснет хуй. так что его крутость необоснованная имхоСпустя 27 сек.ну это я так, гиви подддержать вмешался)Сапожник без сапог -
6 июня 2010 г. 23:09, спустя 7 минут 48 секунд
а возможность любой странице дать ЛЮБОЙ урл
хе-хе. Мои BL уже такое делают, даже круче. Я больше скажу: год назад, когда никаких BL и в помине не было, я такое уже делал. От этого и отталкивался, при разработке роутера. Это уже потом появились разные драйвера: AdminPanel (module/action/param1/value1/p2/v2), SemiDynamic (/:year/:id) -
-
7 июня 2010 г. 1:20, спустя 2 часа 5 минут 11 секунд
я тоже думаю как бы припиздячить декоратор к роутеру на свой блог - собираюсь переделать всё, посадить на ЧПУ то что есть и что будет… -
7 июня 2010 г. 10:31, спустя 9 часов 10 минут 17 секунд
Абырвалг, итак, чем же хуевый вариант с "модуль-экшен-параметры" ? Ну и +, как сказал Дуд, для СЕо-дрочеров возможность задать свой УРЛ для каждой из страниц.
Чем твои извраты будут лучше? Удобством полуторачасовой настройки работы роутера и в конце-концов понять что оно в общем-то нах не нужно.
Мне вот в Кохане роутер понравился поначалу, но в целом почитал на форуме сколько людей сделало из этой фишки действительно что-то функциональное - Получилось единицы! Остальные ебут сами себе моск, а в результате имеют все тот же "модуль-экшен-параметры", только вот местами они их поменяли :).
да и то, в большинстве случаем шаманства с роутингом у людей ушло много времени и нервов. А результат все равно один - страницы отображаются, и пользователь и в том и в ином случае видит одну и ту же информацию. А большего ему и не нужно. -
7 июня 2010 г. 14:50, спустя 4 часа 19 минут 3 секунды
хлебные крошки/forum
/forum/1 # раздел 1
/forum/1/2 # раздел 1 тема 2
/forum/1/2.4 # раздел 1 тема 2 страница 4
/groups/3/forum # форум 3 группы -
Страницы: ← Предыдущая страница • Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!