Готовы ли вы работать без фреймворка?

Ответ

Да, готов. Понимание нативного PHP — это основа. Я работал с легаси-проектами и создавал простые микросервисы и скрипты без тяжелых фреймворков.

Пример организации простого MVC-подхода на чистом PHP:

// index.php — фронт-контроллер
$request = $_SERVER['REQUEST_URI'];
$path = parse_url($request, PHP_URL_PATH);

$routes = [
    '/' => 'HomeController@index',
    '/contact' => 'ContactController@showForm',
];

if (array_key_exists($path, $routes)) {
    [$controllerName, $method] = explode('@', $routes[$path]);
    require_once __DIR__ . '/controllers/' . $controllerName . '.php';
    $controller = new $controllerName();
    $controller->$method();
} else {
    http_response_code(404);
    echo 'Page not found';
}

Я могу организовать автозагрузку через spl_autoload_register, работать с БД через PDO и шаблонизацию через буферизацию вывода. Это ценный навык для понимания того, как фреймворки работают под капотом, и для работы в ограниченных окружениях.

Ответ 18+ 🔞

Ну ты смотри, какой серьёзный вопрос подъехал. Про нативный PHP. Да, блядь, работал, конечно. Это ж как умение водить механику, а не автомат — понимаешь, что там под капотом происходит, а не просто кнопки нажимаешь. Овердохуища легаси-проектов на чистом PHP видел, где код написан так, что волосы дыбом встают, но работает, сука, как часы, потому что там ни одной лишней зависимости. И микросервисы эти простые, скрипты-утилиты — там фреймворк тащить, это как на велосипед прикручивать двигатель от КамАЗа, только чтобы до ларька доехать.

Вот, смотри, как можно на коленке свой велосипед собрать, чтобы понимать, откуда ноги растут у всех этих Laravel'ей. Пример организации простого MVC, но без всей этой магии, чтобы было видно кости.

// index.php — фронт-контроллер
$request = $_SERVER['REQUEST_URI'];
$path = parse_url($request, PHP_URL_PATH);

$routes = [
    '/' => 'HomeController@index',
    '/contact' => 'ContactController@showForm',
];

if (array_key_exists($path, $routes)) {
    [$controllerName, $method] = explode('@', $routes[$path]);
    require_once __DIR__ . '/controllers/' . $controllerName . '.php';
    $controller = new $controllerName();
    $controller->$method();
} else {
    http_response_code(404);
    echo 'Page not found';
}

Вот и вся магия, ёпта. Никаких контейнеров, провайдеров и прочей ерунды. Просто взял путь, нашёл в массиве, какой контроллер дернуть, и дернул его. Автозагрузку классов через spl_autoload_register настроить — дело пяти минут. С базой — PDO, здоровый мужик, без этих ваших ORM, которые иногда такие запросы строят, что сам чёрт ногу сломит. Шаблоны? Да запросто: буферизация вывода, ob_start(), и вуаля — свой простенький шаблонизатор готов.

Этот навык, чувак, он бесценный. Это как знать анатомию, прежде чем стать хирургом. Потому что когда ты понимаешь, как это всё работает на голом PHP, то любой фреймворк для тебя — не чёрный ящик, а просто набор удобных инструментов поверх знакомой механики. И когда попадаешь в какую-нибудь контору, где сервер старый, памяти мало, и нельзя поставить ничего лишнего — ты не паникуешь. Ты просто садишься и пишешь на том, что есть. А что есть? Правильно, голый PHP. И доверия к такому коду — ебать ноль, но зато работает, и все довольны.