Middleware processes HTTP requests/responses before reaching controllers. Used for: authentication, CSRF protection, logging, request modification. Can be global or route-specific. Implements pipeline pattern for request handling.
Service containers manage class dependencies and instantiation. Features: automatic resolution, binding interfaces to implementations, singleton patterns, contextual binding. Core to dependency injection implementation.
Migrations version control database schema changes. Seeders populate databases with test/initial data. Features: rollback capability, timestamps, factory patterns. Essential for database version control and testing.
Frameworks provide authentication systems with: user providers, guards, middleware, password hashing, remember me functionality, OAuth support. Includes session management, token authentication, and multiple authentication schemes.
Frameworks provide caching systems supporting: file, database, memory (Redis/Memcached) caching. Features include: cache tags, atomic locks, cache drivers, automatic cache clearing. Important for performance optimization.
Frameworks include testing tools: unit testing, feature testing, browser testing, mocking, assertions. Support PHPUnit integration, database testing, HTTP testing. Essential for maintaining code quality.
Collections provide fluent interface for array operations. Features: mapping, filtering, reducing, sorting, grouping. Extends array functionality with object-oriented interface. Important for data manipulation.
Template engines (Blade, Twig) provide syntax for views. Features: template inheritance, sections, partials, escaping, custom directives. Compiles templates to plain PHP for performance. Separates logic from presentation.
Service providers bootstrap application services. Handle: service registration, boot operations, package configuration, event registration. Core to framework initialization and package integration.
Security features include: CSRF protection, XSS prevention, SQL injection protection, authentication, authorization, encryption, password hashing. Frameworks provide middleware and helpers for common security needs.
CLI tools provide commands for common tasks: generating code, running migrations, clearing cache, scheduling tasks. Support custom commands, interactive mode. Essential for development and deployment workflows.
Observers/events handle model lifecycle events (create, update, delete). Used for: maintaining related data, sending notifications, logging changes. Helps separate concerns and maintain clean models.
File storage abstraction supports: local storage, cloud storage (S3, etc.), FTP. Features include: file uploads, storage drivers, file operations, URL generation. Provides consistent interface across storage systems.
Laravel is a popular PHP framework featuring: Eloquent ORM, Blade templating, Artisan CLI, built-in security, database migrations, authentication system, task scheduling, queue management, real-time events, and extensive package ecosystem via Composer.
Routing maps URLs to controller actions. Features include: route parameters, middleware, route groups, named routes, resource routing. Frameworks handle request parsing, parameter binding, and response generation. Supports RESTful routing patterns.
Events allow decoupled communication between components. Features: event dispatchers, listeners, broadcasters, queued events. Used for logging, notifications, cache clearing, etc. Supports synchronous and asynchronous processing.
CodeIgniter is lightweight framework featuring: small footprint, simple configuration, built-in security, database abstraction, form/data validation, session handling. Known for simplicity, performance, and minimal configuration.
Frameworks provide validation systems with: built-in rules, custom validators, error messaging, form requests, CSRF protection. Supports client and server-side validation, file validation, and complex validation scenarios.
Authorization systems include: roles, permissions, policies, gates. Features ACL management, policy-based authorization, role hierarchies. Integrates with authentication and middleware systems.
PHP frameworks provide: structured development patterns, built-in security features, database abstraction, code reusability, MVC architecture, robust routing systems, template engines, built-in tools for testing, and faster development cycles. They also enforce consistent coding standards.
Dependency Injection is a design pattern where dependencies are 'injected' into objects rather than created inside them. Frameworks use DI containers to manage object creation and lifecycle. This promotes loose coupling, testability, and maintainable code.
MVC (Model-View-Controller) separates application logic: Models handle data/business logic, Views handle presentation, Controllers handle request flow. Frameworks provide structure and base classes for each component, promoting organized and maintainable code.
Symfony is a framework and component library. Key features: reusable components, dependency injection, event dispatcher, console tools, security system. Components can be used independently in other projects. Follows SOLID principles.
Object-Relational Mappers (ORMs) like Eloquent or Doctrine map database tables to objects. Features: relationship handling, query building, migrations, model events. Simplifies database operations and provides abstraction layer.
Queues handle asynchronous task processing. Features: multiple drivers (database, Redis, etc.), job retries, rate limiting, scheduled jobs. Used for emails, notifications, and resource-intensive tasks.
Facades provide static interface to underlying classes. Offer convenient syntax for common services. Implementation varies: Laravel uses facade pattern, others use static proxies or service locators.
Frameworks provide API tools: resource controllers, API authentication, rate limiting, response formatting, versioning support. Include features for RESTful APIs, API documentation, and testing.
Lumen is Laravel's micro-framework for microservices and APIs. Features: fast routing, basic Laravel features, minimal overhead. Best for simple applications, APIs where full framework unnecessary.
Localization features include: language files, translation helpers, plural forms, date/number formatting. Support multiple languages, language switching, fallback locales. Important for international applications.