Поэтому я использую стиль процедурного программирования в PHP с 2006 года.
Но пропустил много времени за последние 4 года с улучшением.
Недавно я начал больше признавать объектно-ориентированное программирование.
Больше всего на это указывает мне стиль организации MVC и короткие URL-адреса.
вместо того, чтобы URL был «index.php? page = профиль&member = 1 «, это будет» page / profile / member / 1 «.
Я пытаюсь выучить ООП&Архитектура MVC с использованием широкого спектра ресурсов, но это все еще слишком много для меня, чтобы понять. Даже через месяц!
Я всегда просто использовал базовую функцию (и т. Д.) {}, If, else, и, или операторы и SQL-запросы, чтобы выполнить работу. Эти знания до сих пор в основном покрывали все, что мне нужно.
Мне интересно, есть ли способ использовать мой базовый процедурный стиль программирования и все же добиться сокращения URL-адресов?
Я попробовал этот метод ниже
.Htaccess
RewriteEngine On
RewriteCond $1 !^(index\.php)
RewriteRule ^(.*)$ index.php?page=$1 [L]
index.php
<?php
$links = parse_ini_file('links.ini');
if (isset($_GET['page']) && array_key_exists($_GET['page'], $links)) {
require $links[$_GET['page']];
}
else {
echo '
Home page or unknown link
';
}
links.ini
members = pages/members.php
profile = pages/profile.php
Этот метод работает просто на сокращение URL-адреса, но я не знаю, как заставить его работать с profile / user / 1 или index.php? Page = profile&Пользователь = 1
(пользовательская переменная является запросом к базе данных)
Любая помощь будет принята с благодарностью !!!
Вы можете сделать это с тем, что известно как передний контроллер. это Статья сайта может помочь понятию концепции, но это не должно быть объектно-ориентированным, чтобы осуществить это.
По сути, вместо того, чтобы переписывать текст, вы просто перенаправляете все запросы на index.php
:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php
Теперь внутри index.php
Вы можете выбрать запрос вместе с parse_url
и обрабатывать запрос, как вы хотите.
Других решений пока нет …