Я создаю сайт для клиента, и он хочет иметь калькулятор для клиентов, чтобы рассчитать их ежемесячную премию, когда они хотят арендовать автомобиль. Этот калькулятор появляется в трех разных местах на веб-сайте, поэтому я решил построить его один раз, затем include()
файл в основной файл. Например:Почему я должен повторно объявлять свои классы во включенном файле?
case 'calculator':
case 'bereken-leasebedrag':
include('calculator.php');
break;
Однако, у меня есть несколько классов, определенных в главном файле:
use site\database\Vote;
use site\database\Vehicle;
use site\database\VehicleType;
use site\utils\ApiConnect;
use site\utils\Calculator;
и некоторые другие.
Некоторые из этих классов используются в файле калькулятора, таком как калькулятор и транспортное средство, и некоторые другие. Эти классы определены в основном файле, но не передаются в файл калькулятора, тогда как переменные, такие как $ _SESSION, $ _POST и даже мои собственные определенные переменные, такие как $ car и $ calc, доступны во включенном файле.
Если я не повторно объявляю свои классы в начале calculator.php, он выдает фатальную ошибку на странице, говоря, что он не может найти, например, класс ApiConnect.
Я делаю что-то неправильно здесь? Логически говоря, включенные файлы должны наследовать почти все, и кажется контрпродуктивным задавать каждый класс, необходимый для включенных файлов.
Я ужасно объясняю вещи, поэтому, если мне нужно что-то уточнить, я был бы более чем счастлив.
У вас есть автозагрузчик, зарегистрированный на PHP? – divix
@divix Да, наш шаблон содержит файл bootstrap.inc.php и содержит автозагрузчик. Я понятия не имею, как это работает, но я не знаком с PHP – Sean
Пожалуйста, покажите больше кода. То, что вы показываете, не имеет ничего общего с включением файла или автозагрузкой, вы просто показываете какое-то псевдонимы пространства имен. – deceze