У меня есть класс Core\Router
, который нужно использовать и в index.php, и в подключаемом файле routes.php. И хотелось бы писать use
только в index.php, но тогда пишет, что класс Router не найден в файле routes.php (Fatal error: Uncaught Error: Class 'Router' not found ). Код файла routes.php:
<?php
Router::get('/', function () {
echo "Hello world!";
});
Код файла index.php:
<?php
require "core/router.php";
use Core\Router;
Router::set_folder('app/views/');
require "routes.php";
Можно ли записывать use в один файл, чтобы он работал и в подключаемых? Потому что код работает, если я напишу use и в routes.php.
Не очень хочется повторять use Core\Router
, если будет много файлов, которые будут использовать этот класс.
Простой ответ: нет, нельзя.
Но кажется, вы немного запутались. use
нужен для того, чтобы в текущем нэймспейсе можно было использовать псевдоним имени класса. Например у вас есть нэймспейс \
и \Core\
, а в \Core\
есть класс Router
. Чтобы в \
можно было писать просто Router
, нужно импортировать имя, добавив use Core\Router
. То есть use
просто позволяет вам в начале объявить, что ниже под Router
имеется ввиду \Core\Router
. На мой взгляд, это довольно вредная возможность, так как она прячет от программиста бардак в нэймспейсах. Однако фичей широко пользуются, а популярные IDE автоматически добавляют use
.
Чтобы не писать каждый раз use Core\Router
, используйте Router
только внутри нэймспейса \Core
. А если он у вас глобальный, то переместите его в корневой нэймспейс \
(уберите объявление нэймспейса в файле класса Router
) и пишите \Router
. Но скорее всего вам не нужен глобальный Router
, а много файлов, использующих его, говорят об архитектурных проблемах.
\Core\App::route()
.Если вы используете готовые библиотеки или фрэймворки и вам просто лень писать навязанный ими бойлерплейт (повторяющийся код, не относящийся к сути вашей задачи), то используйте IDE. Современный редактор всё напишет за вас.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Я только начинаю разбираться не судите строго
Задача: есть сокет, через него отправляю запросы и получаю ответыИзначально он был написан на php, но мне надо переделать его на python
народ! Прошу помощи, никак не получается подключить библиотеку pgsqlso и pdo_pgsql