Итак, я изучаю PHP и начинаю с чего-то очень простого.Невозможно вызвать функцию в index.php с контроллера
Я пытаюсь вызвать функцию из файла в моей папке контроллера, но это не сработает.
Я был в состоянии ответить на все, что я набираю в строке URL, но он просто не распечатает сообщение в моем другом файле index.php как часть контроллера, но, конечно, продолжит эхо-сообщение ввод URL-адреса. Я что-то упускаю?
Так вот, что я сидел за пределами моих MVC папок, это файл index.php:
<?php
$url = $_GET['url'];
echo $url;
require 'controllers/' . $url . '.php';
$controller = new $url;
?>
И вот что у меня есть в моем файле index.php в моей папке контроллеров, что я пытаюсь звоните:
<?php
class Index {
function __construct(){
echo 'We are in index';
}
}
?>
Мой .htaccess файл выглядит следующим образом:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ /index.php?url=$1 [QSA,L]
Вы используете правильный чехол? Названия функций чувствительны к регистру. Кроме того, linux чувствителен к регистру, поэтому, если у вас есть индекс Index в index.php, он будет терпеть неудачу. – MiDri
Простите, что вы имеете в виду? И да, я использую Linux. –
ваш файл htaccess говорит: «Если вы пытаетесь получить доступ к domain.com/Foo, включите его в domain.com/index.php?url=Foo на сервере». Хорошие URL нечувствительны к регистру, но файловая система Linux не является (что ваш php скрипт), поэтому индекс и индекс - это разные места в файловой системе. Кроме того, функции/классы чувствительны к регистру, поэтому, если вы назвали файл index.php и поместили в него класс Index, ваш скрипт попытается получить доступ к неправильному файлу (если вы попробовали Index) или к неправильному классу (если вы попробовали индекс) – MiDri