Create Tea
a PHP framework similar to Laravel

Links: Docs | GitHub Tea | GitHub Tea core

Get 50% off

by giving us your email, while the videos are under development




What does the course cover?


Everything is created from 0, the only composer library we use is phpdotenv, NOTHING ELSE not even JWT!
  • Setting up a composer project (same structure as Laravel)
  • Setting up the project on GitHub and Packagist (same structure as Laravel)
  • Deployment
  • env
  • Use configuration files
Routing
  • Routing for GET, POST, PUT, and DELETE
  • Routing with closure
  • Routing with controller
  • Handle routing return type, such as JSON, Views, strings, operations, resources, etc.
  • Route parameters
  • Route middlewares
Middlewares (for routing)
  • Implement global middlewares
  • Create a middleware with a terminal command (like: php artisan make:command)
  • Allow users to use their own middleware classes
Controllers
  • Controller implementation
  • Controller helper methods (like not found)
Authentication
  • JWT authentication
Database
  • Support for Mysql and PostgreSQL drivers
ORM
  • Implement
    • all
    • find
    • where
    • create
    • update
    • delete
  • Create a model with a terminal command (like: php artisan make:model User)
  • Allow user to change default table name for model
  • Allow user to change default key name for model
  • Accessors for model
  • Relationships
    • Allow user to change default foreign key for relationship
    • belongsTo
    • hasMany
Observers
  • Listen to model events (creating, created, updating, updated, deleting, deleted)
  • Create an observer with a terminal command (like: php artisan make:observer)
Migrations
  • Create a migration with a terminal command (like: php artisan make:migration)
  • Migrate tables with a terminal command (like: php artisan migrate:refresh)
  • Support for following data types:
    • id
    • boolean
    • enum
    • integer
    • string
    • text
    • unsigned integer
  • Support for following constraints:
    • default
    • notNull
    • primary
    • unique
    • ability to chain constraints
Request
  • Access request and request data
  • Create a request class with a terminal command (like: php artisan make:request)
    • support for authorize method like in Laravel
    • support for rules method like in Laravel
  • Option to override authorize and rules default response
Validation
  • Validate request directly from a controller action
  • Validation via a Request class
  • Available validation rules:
    • boolean
    • email
    • numeric
    • required
API resources
  • Create an api resource class with a terminal command (like: php artisan make:resource)
  • Create an api resource collection class with a terminal command (like: php artisan make:collection)
  • Specify data and structure in the resource
  • Specify data and structure in the collection
  • Return literally any data you want
  • Include relationships
Commands (similar to artisan)
  • Create a command class with a terminal command (like: php artisan make:command)
  • Pre-installed terminal commands
  • User-created commands
  • Show commands
  • Optional parameters for a command
A utility class
  • Change terminal text color to green, red, and yellow
Views
  • Return views like in Laravel with dots (pages.home)
  • Pass data to views
  • Print the data in the view with double curly braces ({{$name}})
Global functions
  • dd
  • json
  • view
  • env
  • pluralize
  • singularize
  • request
  • user
AND MORE! God knows what I forgot to mention!