Я всегда обнаруживал, что определение URL-адресов для других «страниц» в веб-приложении кажется неуклюжим, хрупким или раздутым.
например. у вас есть приложение, которое управляет клиентами, продажами, потенциальными клиентами и, следовательно, имеет следующие «страницы».
- CustomerList
- viewcustomer
- editcustomer
- addcustomer
- viewcontact
- editcontact
- addcontact
- проспект (x3? X4?)
- продажи (х?)
- продукт (x?)
- запрос (х?)
- прогноз (х?)
- и т.д.. ...
По мере роста приложения число страниц быстро увеличивается до списка из 100+ URL-адресов.
Логика говорит, что просто копировать / вставлять эти URL-адреса там, где это необходимо на странице, уродливо и неудобно, но загрузка 100+ ключей / значений кажется излишней, если вам нужно только 2 или 3 из них на «этой» странице .
Технически это не зависит от языка (ASP, JSP, PHP, RoR, Python и т. Д.), Но я намерен реализовать его на PHP (в настройке MVC). Однако, если у ASP.Net или Rails есть «действительно крутой» способ сделать это, я весь в ушах.
Обновление:
Я на полпути к преобразованию PHP-приложения, не относящегося к MVC, для использования структуры MVC. Ранее у меня был большой набор ключевых ссылок, которые были базовым URL для страницы, например ::1010
$URLs['CUSTOMER_ORDER_CONTACTS'] = '/customerordercontacts.php';
$URLs['CUSTOMER_PRODUCTS_EDIT'] = '/editcustomerproducts.php';
//etc.
Поскольку я мог ссылаться на экран «Редактирование продуктов клиента» из любой точки мира, каждая страница загружала этот список, так что если / когда URL-адрес изменился на другую страницу ... изменение элемента в списке обновит все ссылки.
Однако, когда я читаю ответы здесь, я думаю, что мог бы случайно ответить на свой вопрос. То, что написал @Blixt, в значительной степени является структурой, которую я / планирую следовать ... в этот момент URL действительно структурирован таким образом, что я не нужно иметь этот список вообще :
Пример. Если я выполняю рендеринг клиента ... и хочу предоставить ссылку на каждый контакт
//pseudo code
$contacts = $customer.getContacts();
//previous rendering list of links
foreach($contacts as $key => $value){
echo('<a href="'.$URLs['CUSTOMER_CONTACT_VIEW'].'?customer='.$custID.'&contact='.$key.'">'.$value.'</a>');
}
//new rendering list of links
foreach($contacts as $key => $value){
echo('<a href="/customer/'.$custID.'/contact/'.$key.'">'.$value.'</a>');
}