Помощь Joomla



Пишем Сайт на Php

Создание движка на MVC. Пишем роутер.  Ноябрь 16, 2016 – 12:11

Создание движка на MVC. Пишем роутер.Привет всем! Вот и наступила вторая статья из серии, посвященной созданию движка на MVC. Сегодня мы создадим роутинг. Поехали!

Для начала разберемся, как будет работать наш роутинг. У нас будет единая точка входа - index.php. Туда будут отправляться все запросы. URL будет такого вида:

Т.е. сначала будет идти контроллер, потом метод, а потом параметры. Этот URL будет разбираться нашим роутером и будет вызываться переданный метод у переданного контроллера с параметрами(если есть).

Думаю, как это будет работать, вы поняли. Теперь откроем файл .htaccess и пропишем следующее:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?url=$1 [QSA, L]

Разберемся, что мы здесь написали. Сначала включаем движок перезаписи, потом задаем 3 условия: если это не физическая директория, файл или ссылка, то берем весь URL и отправляем на файл index.php(нашу единую точку входа), передав GET параметр URL со значением нашего URL.

Теперь что бы вы не ввели в адресную строку, вы всегда будете попадать в файл index.php. Давайте перейдем в этот файл и пропишем следующее:

Теперь вы увидите ваш URL. Давайте создадим контроллер index.php в папке controllers.

Теперь в нашем главном файле index.php подключим его

Теперь мы увидим надпись, которую выводит конструктор нашего класса. Создадим еще один контроллер help.php в папке controllers.

Теперь если в адресной строке после названия сайта(домена) ввести '/help', вы увидите, что сработал контроллер Help.

Итак, думаю, вы поняли, как это работает. Теперь, чтобы не затягивать, я приведу сразу готовый код главного файла index.php, а потом поясню его.

Вот такой вот получился файл index.php. Сначала мы получаем наш URL адрес и записываем его в переменную $url. Дальше наш нужно удалить последний слэш, иначе у нас будет ошибка. Для этого мы воспользовались функцией rtrim, куда первым параметром передаем, что мы хотим удалить, а вторым - где. После, используя функцию explode мы разбиваем нашу строку на массив по слэшу. Теперь первым параметром у нас будет название контроллера, который мы и подключаем строчкой ниже и создаем его объект. Теперь проверяем, есть ли параметры. Если да, то вызываем переданный метод и передаем параметр, а если нет, то просто вызываем наш метод.

Давайте теперь в нашем контроллере help.php создадим метод other.

Теперь напишем в адресной строке следующее:

И у нас вызовится метод other контроллера help.

Теперь изменим наш метод other

Теперь в адресной строке браузера напишем так: В метод передастся 10, и он это выведит.

Итак, вот мы уже и сделали наш роутер рабочим. Конечно, это только начало, но оно уже положено. Дальше будет только интересней. Спасибо за внимание!

Source: myrusakov.ru

Похожие публикации:

  1. Учебники по Php
  2. Книга по Php
  3. Sql Учебник Онлайн
  4. Верстка Онлайн
  5. Изучаем Php

http://www.strekoza-tv.ru/

http://www.sklad-stroika.ru/

http://www.xtkolet.ru/

http://neumaticosdelvalle.com.ar/

http://www.nutrinormwellness.com/

http://misaelcardosoarquitetura.com.br/

http://www.zhenskaya-obuv.ru/

http://www.bezgemorroya.info/

http://www.libertarianguide.info/

http://www.joshuasophrin.com/

http://www.skdar.ru/

http://www.zbrass.eu/

http://scarletsails.net.ru/

http://www.promo-plates.info/

http://www.poiskvbelgorode.ru/

http://www.playbass.info/

http://www.forma-obratnoj-svjazi-joomla.ru/

http://www.tatrypt.eu/

http://www.naglfar.ru/

http://www.maddogsexpeditions.info/

http://www.culturalshowcase.info/

http://www.freehost96.ru/

http://www.aikidoofgreensboro.net/

http://www.dreammedicine.in/

http://www.furniturewood.ba/

http://www.miomasincirugia.com/

http://www.mobilidadept.com/

http://www.paylasimgida.com/

http://www.opalowy-sklad.pl/

http://www.mopro.at/

http://www.my247webhosting.com/

http://www.orator.biz/

http://www.munkagepmonitor.hu/

http://www.mp46katowice.pl/

http://www.mcedinstvo.ru/

http://www.naturalhigh.ro/

http://www.ozkayalarpaslanmaz.com/

http://www.moitruongminhhuy.com/

http://www.mutdaithanh.vn/

http://www.motosport.fr/

http://www.noormedicare.com/

http://www.thesmokingribs.com/

http://www.nationalagro.org/

http://www.homee.vn/

http://www.noithatdangcap.vn/

http://www.fureszaru.net/

http://maulin.com.tw/

http://www.olejnikjurajda.cz/

http://www.rednet24.pl/

http://www.rednetdom.pl/

http://www.nomia.md/

http://www.maycongcuthanhloc.com/

http://www.rednetconsulting.pl/

http://www.meritum-dom.pl/

http://www.medishopsk.sk/

http://www.medica-brno.com/

http://www.apprt.ru/

http://www.namingbranding.ru/

http://mehrallies.co.tz/

http://www.dom-abc.ru/

http://www.rgrt.ru/

http://www.bhagwanbhajan.com/

http://www.eurostroy-kazan.ru/

http://www.ulightdj.tv/

http://ehongshop.com.tw/

http://sinyetech.com.tw/

http://nhatranghouse.com.vn/

http://www.moviedj.tv/

http://www.koreadj.tv/

http://slin.com.tw/

http://www.awextaipei.com/

http://www.obotz.ca/

http://www.cohoip.com/

http://www.wawakening.org/

http://e-hong.com.tw/

http://uvtech.com.tw/

http://www.autotextsms.com/

http://ktorganic.com.vn/

http://www.gndpsbti.com/

http://bmhc.edu.bd/

http://amirmiahhsc.edu.bd/

http://forincorp.com.hk/

http://www.autorange.ru/

http://www.auto-azimut.ru/

http://www.autocentr-khimki.ru/

http://www.msn-com.de/

http://www.noithathoangquan.com/

http://www.mascort.pl/

http://www.mediawinwin.vn/

http://www.mineralspa.vn/

http://motospeed.com.vn/

http://www.pescons.vn/

http://sekolahgkps.or.id/

http://www.parkids.pt/

http://www.miraicare.vn/

http://www.nagyhazi.hu/

http://radioouvinte.com.br/

http://www.spiritsence.com/

http://www.tkseal.com/

http://www.jssfn.com/

http://www.mamaten.jp/

http://parkwaypiscinas.com.br/

http://www.dienmayvinhthuan.vn/

http://www.hnt-engineering.com/

http://www.namsontrongdoi.com/

http://www.vangiaphatdeco.com/

http://petrolchemical.com.vn/

http://www.shm-bk.com/

http://www.smougroup.ae/

http://www.muchos.pl/

http://www.ouremaquinas.pt/

http://podios.com.ar/

http://nanoilocal.go.th/

http://www.g-concier.com/

http://www.naturalcurefor.com/

http://www.spbnarcolog.ru/

http://www.limepuzzle.com/

http://www.workstyle365.com/

http://www.devoncommunication.sk/

http://www.skolafotografie.sk/

http://www.skadas.com/

http://obrabiarki.biz.pl/

http://www.nebensatz.com/

http://www.passerotti.pl/

http://man3tulungagung.sch.id/

http://www.mojanajkniha.sk/

http://www.nhatminhland.net/

http://niccs.co.jp/

http://www.farmersgardencafe-omelette.com/

http://www.wonderfullife.jp/

http://www.hopes-co.com/

http://www.mygongmo.com/

http://www.muoithanhphat.com/

http://www.ketquaxsmn.com/

http://www.dsprinting.id/

http://www.qinronmedia.com/

http://www.thehousemediagroup.com/

http://tnpcompany.com.vn/

http://www.mdx.vn/

http://www.manganhoa.com/

http://www.hollyparkstables.com/

http://www.my-flower.jp/

http://www.bkservis.sk/

http://www.metallo-snab.ru/

http://www.akbars-dynamo.ru/

http://www.promsnab-kazan.ru/

http://www.nawaplastic.com/

http://www.mamystore.com/

http://www.pensionod.com/

http://mtlrosario.com.ar/

http://www.pensiimaramures.ro/

http://www.michaelakokesova.cz/

http://www.mc2.lv/

http://www.mikrovlny.cz/

http://www.transfer.sk/

http://www.royallinks.in/

http://www.olive-pizzeria.com/

http://www.maxemocapital.com/

http://www.roycehelmet.com/

http://www.notredameschoolvasai.com/

http://www.opibg.it/

http://www.monday-portage-salarial.fr/

http://www.neareo.com/

http://oasiskaitak.com.hk/

http://www.alesklep.com/

http://www.noa-world.jp/

http://www.rotaseydisehir.com/

http://www.rusztowania-belchatow.pl/

http://www.e-salamander.pl/

http://mikona.com.pl/

http://www.prec-metal.pl/

http://www.viswabrahmanaeducationaltrust.com/

http://www.holyangelscollege.in/

http://www.kbcgarden.com/

http://www.jsminfotech.com/

http://www.northshorefinefoods.com/

http://www.setkaplastic.ru/

http://www.photog.ru/

http://www.geo-mir.ru/