# QuickFrame **Repository Path**: wfdaj/QuickFrame ## Basic Information - **Project Name**: QuickFrame - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-28 - **Last Updated**: 2025-11-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # πŸ“¦ QuickFrame Framework QuickFrame is a lightweight PHP micro-framework inspired by Laravel. It was built with simplicity and accessibility in mind β€” especially for *shared or budget hosting environments* where SSH access is not available. With QuickFrame, you can build dynamic PHP web applications even on servers that don't support Composer or command-line tools. ➑️ **Installer repository**: [quickframe-installer](https://github.com/PierrOwO/quickframe-installer) ➑️ **Status**: Actively developed 🚧 ➑️ **Live preview**: πŸ”— https://quickframe.pieterapps.pl --- ## πŸš€ Getting Started Once the QuickFrame CLI is installed, you can create a new project by running: ```bash quickframe new myApp ``` Your project will be created in: **Linux/macOS**: `/Users//myApp` **Windows**: `C:\Users\\Desktop\myApp` --- ## πŸ“‚ Project Structure ``` myApp/ β”œβ”€β”€ app/ β”‚ β”œβ”€β”€ Controllers/ β”‚ β”œβ”€β”€ Helpers/ β”‚ β”œβ”€β”€ Middleware/ β”‚ └── Models/ β”œβ”€β”€ config/ β”‚ β”œβ”€β”€ app.php β”‚ β”œβ”€β”€ database.php β”‚ └── mail.php β”œβ”€β”€ database/ β”‚ β”œβ”€β”€ migrations/ β”‚ └── seeders/ β”œβ”€β”€ public/ β”‚ └── index.php β”œβ”€β”€ resources/ β”‚ β”œβ”€β”€ css/ β”‚ β”œβ”€β”€ js/ β”‚ └── views/ β”œβ”€β”€ routes/ β”‚ β”œβ”€β”€ api.php β”‚ β”œβ”€β”€ auth.php β”‚ └── web.php β”œβ”€β”€ storage/ β”œβ”€β”€ support/ β”‚ └── ... β”œβ”€β”€ .env β”œβ”€β”€ frame β”œβ”€β”€ LICENSE β”œβ”€β”€ package-lock.json β”œβ”€β”€ package.json └── vite.config.js ``` --- # First configuration Before you start using **QuickFrame**, make sure you have the following installed on your system: - **PHP** (version 8.2 or higher) - **Node.js** (includes `npm`) – required for Vite and frontend build tools - **Git** (for version control and Git-FTP deployments) ## 1. Install Node.js and npm QuickFrame uses **Vite** for asset bundling. If you don’t have Node.js installed, download it from: πŸ‘‰ [https://nodejs.org/](https://nodejs.org/) Installing Node.js will also install **npm** automatically. ## 2. Install JavaScript dependencies Run: ```bash npm install ``` ## 3. Environment configuration Edit `.env` to match your database and server configuration. ## 4. Run development server For PHP (backend): ```bash php frame serve ``` For Vite (frontend assets): ```bash npm run dev ``` --- # βš™οΈ CLI Commands From the project root, you can run: ```bash php frame serve ``` Starts a local development server at `http://localhost:8000` ## QuickFrame CLI & FTP Deployment Guide ### Available QuickFrame Commands #### Core - `serve` Start the local development server - `serve IP PORT` Start server with custom IP and port - `--version` Show current QuickFrame version - `-v` Short version of `--version` #### Generators - `make:controller Name` Create a new controller class - `make:model Name` Create a new model class - `make:middleware Name` Create a new middleware class - `make:helper Name` Create a new global helper function - `make:view Name` Create a Blade-like view file - `make:migration Name` Create a new migration class - `make:seeder Name` Generate a new seeder class #### Migrations - `migrations:on` Enable browser migration interface - `migrations:off` Disable browser migration interface #### Seeders - `db:seed` Run all seeders from `/database/seeders` - `db:seed Name` Run a specific seeder class - `seeders:on` Enable browser seeder interface - `seeders:off` Disable browser seeder interface #### FTP Deployment - `ftp:init` Initialize Git FTP - `ftp:push` Deploy using Git FTP --- ### FTP Commands Requirements The commands: - `php frame ftp:init` - `php frame ftp:push` only work if you have **git-ftp** installed. #### Linux / macOS Make sure you have `git ftp` installed, for example: ```bash brew install git-ftp # macOS with Homebrew sudo apt install git-ftp # Ubuntu/Debian Linux ``` #### Windows ## Option 1: Use WSL (Windows Subsystem for Linux) Due to environment limitations, it’s best to run git ftp inside the Windows Subsystem for Linux (WSL) environment. If you don’t have WSL installed yet, open PowerShell as Administrator and run: ```bash wsl --install ``` After installing WSL and restarting your PC, you can use git ftp commands via WSL. ### Option 2: Use Git Bash Terminal If you have Git for Windows installed, you may also use git ftp from the Git Bash terminal β€” just make sure git ftp is correctly installed and accessible in that environment. βΈ» Note: QuickFrame automatically detects git ftp either from WSL or the standard shell (like Git Bash). To avoid issues, ensure git ftp works correctly in at least one of these environments. --- ## πŸ—‚οΈ Migrations QuickFrame supports class-based migrations similar to Laravel: - Create a migration: ```bash php frame make:migration CreateUsersTable ``` - Enable browser access to the migration panel: ```bash php frame migrations:on ``` - Visit [`/migrations`](http://localhost:8000/migrations) in your browser to manually apply/drop migrations. - Disable migration access: ```bash php frame migrations:off ``` Migrations use an internal Blueprint system to define tables, columns, foreign keys and constraints. --- ## 🌱 Seeders QuickFrame supports class-based seeders similar to Laravel: - Create a seeder: ```bash php frame make:seeder UsersTableSeeder ``` - Run a specific seeder: ```bash php frame db:seed UsersTableSeeder ``` - Run all seeders: ```bash php frame db:seed ``` - Enable browser access to the seeder panel: ```bash php frame seeders:on ``` - Visit [`/seeders`](http://localhost:8000/seeders) in your browser to manually run seeders. - Disable seeder access: ```bash php frame seeders:off ``` --- ## πŸ’‘ VS Code Integration To enable syntax highlighting and Blade features for `.frame.php` view files in **Visual Studio Code**, add this to your User Settings (`settings.json`): ```json "files.associations": { "*.frame.php": "blade" } ``` You can find this setting by opening the Command Palette and searching for: `Preferences: Open User Settings (JSON)` --- ## πŸ“‘ Requirements - PHP 8.1+ - Git (used by the installer to fetch templates) - A web server with support for `public/index.php` --- ## 🎯 Why QuickFrame? Laravel is powerful, but it requires a modern server environment with Composer and terminal access (SSH). QuickFrame removes these limitations β€” it runs out-of-the-box on traditional shared hosting platforms using only FTP. Perfect for: - Shared hosting deployments - Lightweight/internal web apps - Laravel-style devs who need simpler, portable projects --- ## πŸ”§ Development QuickFrame is under active development Feel free to contribute, submit issues, or suggest improvements!