{"id":18000850,"url":"https://github.com/josecelano/framework-kata","last_synced_at":"2025-04-04T08:11:16.977Z","repository":{"id":66731440,"uuid":"108817217","full_name":"josecelano/framework-kata","owner":"josecelano","description":"A DDD friendly and no vendor framework for katas with extra React and Vue style backend components","archived":false,"fork":false,"pushed_at":"2017-10-30T07:55:25.000Z","size":61,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-01T21:54:37.281Z","etag":null,"topics":["ddd","framework","kata","php"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/josecelano.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2017-10-30T07:38:06.000Z","updated_at":"2017-10-30T07:54:40.000Z","dependencies_parsed_at":"2023-04-26T19:17:51.875Z","dependency_job_id":null,"html_url":"https://github.com/josecelano/framework-kata","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/josecelano%2Fframework-kata","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/josecelano%2Fframework-kata/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/josecelano%2Fframework-kata/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/josecelano%2Fframework-kata/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/josecelano","download_url":"https://codeload.github.com/josecelano/framework-kata/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247142077,"owners_count":20890653,"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":["ddd","framework","kata","php"],"created_at":"2024-10-29T23:14:51.506Z","updated_at":"2025-04-04T08:11:16.958Z","avatar_url":"https://github.com/josecelano.png","language":"PHP","readme":"# Framework kata\n\n## Goal\n\n1. Build a framework from scratch. A DDD friendly framework.\n2. Have a skeleton framework for web app katas that requires no third-party packages.\n3. Proof of concept for PHP components like JS components (React \u0026 Vue).\n\nRegarding goal 3, I have always wondered why frontend template libraries have evolved to use classes and backend template libraries (at least in PHP) continue using plan php files (directly PHP or compiled templates).\n\nI think I could be useful to have classes because we could:\n* Test templates easily.\n* Identify easily template data dependencies.\n* Avoid runtime errors when templates receive wrong data types.\n* Increase templates re-usability. You can use your components with different frameworks.\n* Increase usability. Templates could load their data, avoiding controller bottleneck.\n\nThere are some frameworks (like Laravel) that have \"view composers\" but I think there are not reusable for different projects and there are no easy to use. And they do not allow to pass data from the view to the class, I mean the component class can not receive data from the parent template.\n\n## Install\n\n```\ngit@github.com:josecelano/framework-kata.git\ncd framework-kata\nmysql -h \"localhost\" -u \"root\" \"-pXXXXXXXX\" \u003c database/database.sql\ncomposer install\n```\n\n* Initialize your database setting in file: `./app/database.php`\n\n## Run\n\nServer:\n\n```\ncd public\nphp -S localhost:8000 server.php\n```\n\nUnit tests:\n\n```\ncomposer run test\n```\n\nAcceptance tests:  \n```\ncomposer run acceptance\n```\n\n## Console commands\n\nCreate user:\n```\nphp -f ./app/console.php create-user \"username\" \"email\" \"passwrod\"\nphp -f ./app/console.php create-user \"josecelano\" \"josecelano@gmail.com\" \"1234\"\n```\n\n## TODO\n\n* Testing.\n* Use decorator pattern instead of inheritance for components that extend other components (A, Alert, Page, ...)","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjosecelano%2Fframework-kata","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjosecelano%2Fframework-kata","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjosecelano%2Fframework-kata/lists"}