{"id":15167170,"url":"https://github.com/germondai/php-framework","last_synced_at":"2026-02-16T04:03:34.360Z","repository":{"id":249448338,"uuid":"822588094","full_name":"germondai/php-framework","owner":"germondai","description":"PHP Full-Stack MVC Framework - Doctrine, Vite, ...","archived":false,"fork":false,"pushed_at":"2024-07-20T21:48:32.000Z","size":894,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"dev","last_synced_at":"2025-02-10T14:43:56.043Z","etag":null,"topics":["api","blade","crud","db","doctrine","entities","framework","fullstack","jwt","migrations","mvc","mysql","nette","orm","php","rest","tailwindcss","template","ts","vite"],"latest_commit_sha":null,"homepage":"https://germondai.com","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/germondai.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-01T12:34:54.000Z","updated_at":"2024-07-20T21:48:35.000Z","dependencies_parsed_at":"2024-07-20T22:51:29.225Z","dependency_job_id":"887e7e45-a5a5-4c34-82c5-e4e9c49e6be9","html_url":"https://github.com/germondai/php-framework","commit_stats":null,"previous_names":["germondai/php-framework"],"tags_count":1,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/germondai%2Fphp-framework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/germondai%2Fphp-framework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/germondai%2Fphp-framework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/germondai%2Fphp-framework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/germondai","download_url":"https://codeload.github.com/germondai/php-framework/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245592676,"owners_count":20640883,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","blade","crud","db","doctrine","entities","framework","fullstack","jwt","migrations","mvc","mysql","nette","orm","php","rest","tailwindcss","template","ts","vite"],"created_at":"2024-09-27T05:40:58.213Z","updated_at":"2025-09-21T23:02:05.176Z","avatar_url":"https://github.com/germondai.png","language":"PHP","readme":"\u003ch1 align=\"center\"\u003e\n  \u003ca href=\"https://api.germondai.com\" target=\"_blank\"\u003e\n    \u003cimg align=\"center\" src=\"https://skillicons.dev/icons?i=php,mysql,vite\" /\u003e\u003cbr/\u003e\u003cbr/\u003e\n    \u003cspan\u003ePHP Full-Stack Framework\u003c/span\u003e\u0026nbsp;\n  \u003c/a\u003e\n\u003c/h1\u003e\n\n**PHP Full-Stack Framework** offering both **front** and **back** - **end** options to run **simultaneously**!\\\nIncludes a **RESTful API** and **Model-View-Controller** (MVC) system with integrated **Doctrine** and **Vite**.\n\n**Controllers** for **Client** and **Api** to render views and routes as needed. Usage of **blade.php templating engine** with live HMR **Vite** server for **asset bundling** (includes asset mapper for production builds).\n\nBack-end **Api** with **Model** \u0026 **Entity Controller** that handles routing of **Model/Action** and **Entity CRUD operations** based on **Request Method**. Doctrine **Console**, **Entities** and **Migrations** to create flawless **ORM Schemas**. Custom useful **Utils** like **Token** that manages **JSON Web Tokens** (JWT). Pre-done **Auth Model**, **User Entity** connected with **Media Entity** by **OneToMany Relation** to keep track of **Author** of **uploaded** media **files** (**optimize**, **resize** and **image format/type change** included).\n\nEasy **configuration** and safe **.env** variables.\n\n## ⚡️ Features\n\n### Overview\n\n-   MVC System\n    -   Config, Bootstrap, Router\n    -   Preferred mode (api/client)\n-   Front-end\n    -   Vite (js, ts, css, scss, tailwind)\n    -   Blade (Views, Components, Layouts)\n-   Back-end API\n    -   RESTful Entities (EntityController)\n        -   CRUD\n        -   Media\n            -   Upload\n            -   Optimize\n            -   Resize\n            -   Quality\n            -   Format\n    -   Models (ModelController)\n        -   Auth\n    -   Doctrine (DBAL, ORM)\n        -   Entities\n        -   Migrations\n    -   Custom Utils\n        -   Helpers\n            -   Helper\n            -   Page Helper\n        -   Database\n        -   Doctrine\n        -   JSON Web Tokens (JWT)\n    -   Nette\n        -   Database Explorer\n        -   Tracy\n-   Environment (.env)\n-   Prettier \u0026 ESLint\n-   .htaccess\n\n## 🧬 Structure\n\n**app/** - App's Main Code (Controller, Entity, Model, View)\\\n**bin/** - Console for Doctrine\\\n**config/** - Main config of app\\\n**log/** - All types of Error logs\\\n**migrations/** - Doctrine DB Migrations\\\n**public/** - Publicly accessible (Dist assets, Routing, Media)\\\n**src/** - Developer Source Files (Assets, Utils)\\\n**temp/** - Storage for Temporary Files and Caches\n\n## 🧠 Technologies\n\n-   \u003ca href=\"https://php.net\" target=\"_blank\"\u003ePHP\u003c/a\u003e\n-   \u003ca href=\"https://vitejs.dev\" target=\"_blank\"\u003eVite\u003c/a\u003e\n-   \u003ca href=\"https://github.com/EFTEC/BladeOne\" target=\"_blank\"\u003eBlade\u003c/a\u003e\n-   \u003ca href=\"https://doctrine-project.org\" target=\"_blank\"\u003eDoctrine\u003c/a\u003e\n-   \u003ca href=\"https://doc.nette.org/database\" target=\"_blank\"\u003eNette DB\u003c/a\u003e\n-   \u003ca href=\"https://jwt.io\" target=\"_blank\"\u003eJSON Web Tokens (JWT)\u003c/a\u003e\n-   (TS, SCSS, Tailwind, Prettier, ESLint, ...)\n\n## 🛠️ Installation Instructions\n\nTo start a project with this framework you can either clone this repository or download its source code from \u003ca href=\"https://github.com/germondai/php-framework/releases/latest\" target=\"_blank\"\u003elatest release\u003c/a\u003e\n\n### Requirements\n\n-   👨‍💻 \u003ca href=\"https://getcomposer.org/\" target=\"_blank\"\u003eComposer\u003c/a\u003e\n-   📦 \u003ca href=\"https://getcomposer.org/\" target=\"_blank\"\u003eNode Package Manager (pnpm - recommended)\u003c/a\u003e\n\n### Install dependencies\n\n```bash\n# php back-end part\ncomposer install\n\n# vite front-end part\npnpm install\n```\n\n### Assets\n\nWith usage of PageHelper you can add assets that will be rendered automatically on page load\\\n**NOTE**: Ensure that all your assets are defined in **vite.config**!\n\nIf everything is set up correctly, assets are automatically mapped, resolved and added to the page.\\\nIn development mode, live Vite server versions are loaded. (if that fails, it attempts to load the production assets from public/dist directory)\n\n```bash\n# Add assets to the Page/View\nPageHelper::setAssets(['ts/app.ts']);\n\n# Preview assets in real time (Vite + HMR)\npnpm run dev\n\n# Build assets (src/assets -\u003e public/dist)\npnpm build\n```\n\n### Setup .env\n\n-   Database Credentials\n-   JWT Secret and Algorithm\n-   Vite Server Destination\n-   Preferred mode (client / api)\n\n```bash\n# to dupe example.env as .env\ncp example.env .env\n```\n\n## 📝 Entity Guide\n\nEntity CRUD operations depends on Request Methods\\\nEntity Schema returns tables / table with columns\n\n### Routes\n\nOperations: `/[entity]/[id]`\n\n-   GET - Read\n-   POST - Create\n-   PUT - Replace\n-   PATCH - Update\n-   DELETE - Delete\n-   OPTIONS - Preflight (always return 200)\n\nSchema: `/schema/[entity]`\n\n## 📜 Model Guide\n\nModel routes are automatically generated by \"action...\" methods commonly written in camel case\\\n(e.g. `actionGet()` accessed by `/[model]/get`)\n\nModels default action can be made by setting only\\\n`action` method -\u003e `/[model]/`\n\nModels can be nested as much as you want by namespaces\\\n`Model\\Users\\Admin` -\u003e `/Users/Admin/[action]`\n\n### Routes Summary\n\nDefault Method: `/[model]/`\\\nModel Methods: `/[model]/[action]`\\\nNested Models: `/[namespace]/[model]/[action]`\n\n## 📚 Doctrine Guide\n\nThe Doctrine console is in \"_bin/console_\"\\\nEntityManager config location \"_src/Utils/Doctrine.php_\"\\\nBase migrations config, which is in root \"_migrations.php_\"\\\nAnd migration files are stored in \"_migrations/_\"\n\n### Console\n\n```bash\n# To run doctrine console\nphp bin/console ...\n\n# if you need commands list\nphp bin/console list\n```\n\n## 🧹 Linting\n\nThis project utilizes Prettier and ESLint for code formatting and style consistency\n\n```bash\n# Check for linting errors and warnings\npnpm lint\npnpm prettier\n\n# Automatically fix linting errors and warnings\npnpm lint:fix\npnpm prettier:fix\n```\n\n---\n\n\u003cp align=\"center\"\u003e\n    \u003cspan\u003eMade with ❤️ by\u003c/span\u003e\n    \u003ca href=\"https://github.com/germondai\" target=\"_blank\"\u003e@germondai\u003c/a\u003e\n\u003c/p\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgermondai%2Fphp-framework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgermondai%2Fphp-framework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgermondai%2Fphp-framework/lists"}