Прочитав некоторые ответы, я хотел бы сначала сказать, что у вас не часто есть выбор, какую платформу вы собираетесь использовать или собираетесь ли вы использовать один или нет (как профессионал). Я не хочу вас запугивать, но вам нужно будет выработать достаточно понимания PHP, чтобы можно было переходить с одного фреймворка на другой, а также использовать более одного фреймворка одновременно.
когда мне нужно использовать PHP-фреймворк, такой как CakePHP?
На это нет универсального ответа. Как профессионал, вам будет поручено решать конкретные проблемы, и это будет решающим фактором, когда и что будет с каждым проектом, особенно если у клиента есть конкретный спрос. Но, вообще говоря, вы всегда будете использовать какую-то форму фреймворка с PHP, если только вы не модифицируете или не расширяете уже существующее приложение, которое имеет свою собственную фреймворк (например, Wordpress или PHPBB).
Что мне предлагают эти и другие подобные PHP-фреймворки?
Как сказал Дирк, они предлагают абстракцию. Это означает, что они принимают общие многоэтапные процедуры и стараются сделать их максимально простыми и оптимизированными. Короче говоря, они пытаются представить решения «просто добавь воды» для решения общих задач.
И действительно ли важно использовать каркас, чтобы быть профессионалом?
Вообще говоря, нет, не важно использовать рамки, чтобы быть профессионалом. Но реально, у вас не будет большой карьеры, если вы не знакомы хотя бы с парой общих рамок. PHP без фреймворка похож на C ++ без библиотеки std. Вам это не нужно, и вы на самом деле можете сделать больше без него, так как вы будете напрямую использовать функциональные возможности языка нижнего уровня, но вам потребуется гораздо больше времени, чтобы сделать то же самое.
И могу ли я создать свой собственный фреймворк, чтобы в него входили понравившиеся мне функции?
Да. На самом деле, вы, вероятно, в конечном итоге сделаете это, даже если непреднамеренно. Под этим я не подразумеваю обширную универсальную инфраструктуру, но больше напоминаю набор инструментов с базовыми функциями и сценариями, которые выполняют задачи, которые не являются общими или достаточно общими, чтобы их можно было обрабатывать средней структурой. Мой в основном состоит из различных файловых систем, обработки процессов и битов rex-ex с несколькими различными утилитами curl и stream / socket.