{"id":18486133,"url":"https://github.com/mathsgod/graphql-php-loader","last_synced_at":"2026-04-30T02:31:56.708Z","repository":{"id":62525027,"uuid":"341839610","full_name":"mathsgod/graphql-php-loader","owner":"mathsgod","description":"A simple loader to generate Schema for webonyx/graphql-php","archived":false,"fork":false,"pushed_at":"2021-03-25T09:59:11.000Z","size":25,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-08-02T21:50:24.616Z","etag":null,"topics":["graphql","php"],"latest_commit_sha":null,"homepage":"","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/mathsgod.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}},"created_at":"2021-02-24T09:03:06.000Z","updated_at":"2021-03-25T09:59:13.000Z","dependencies_parsed_at":"2022-11-02T14:15:39.926Z","dependency_job_id":null,"html_url":"https://github.com/mathsgod/graphql-php-loader","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/mathsgod/graphql-php-loader","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathsgod%2Fgraphql-php-loader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathsgod%2Fgraphql-php-loader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathsgod%2Fgraphql-php-loader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathsgod%2Fgraphql-php-loader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mathsgod","download_url":"https://codeload.github.com/mathsgod/graphql-php-loader/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathsgod%2Fgraphql-php-loader/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32452293,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T22:27:22.272Z","status":"online","status_checked_at":"2026-04-30T02:00:05.929Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["graphql","php"],"created_at":"2024-11-06T12:47:56.235Z","updated_at":"2026-04-30T02:31:56.692Z","avatar_url":"https://github.com/mathsgod.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![PHP Composer](https://github.com/mathsgod/graphql-php-loader/actions/workflows/php.yml/badge.svg?branch=main)](https://github.com/mathsgod/graphql-php-loader/actions/workflows/php.yml)\n\n# graphql-php-loader\n\nA simple loader to generate Schema for webonyx/graphql-php\n\n## Usage\n\nUse file structure to create and design graphql schema.\n\n1. Create a folder \"graphql\" at your document root.\n2. Create a folder \"Query\" in \"graphql\" folder.\n3. Now you can create field for Query\n\n### Init\n```php\n\nuse GraphQL\\Loader;\nuse GraphQL\\Type\\Schema;\n\n$loader=new Loader();\n\n$config = SchemaConfig::create()\n    -\u003esetQuery($loader-\u003equeryType())\n    -\u003esetMutation($loader-\u003emutationType());\n\n$schema = new Schema($config);\n\n```\n\n### Example \n\n#### Simple query\nCreate a file hello.php in \"graphql/Query\" folder\n```\ngraphql\n+-- Query\n|  +-- hello.php\n```\n\nQuery/hello.php\n```php\nreturn [\n    \"type\"=\u003e\"String\",\n    \"resolve\"=\u003efunction($root,$args,$context){\n        return \"world!\";\n    }\n];\n```\nIt equivalent to build to following schema\n```gql\ntype Query{\n    hello:String\n}\n```\n\n#### Custom type\nIf you want to use custom object type, just create type file at graphql folder\n\n```\ngraphql\n+-- Query\n|  +-- me.php\n+-- User.php\n```\n\nQuery/me.php\n```php\nreturn [\n    \"type\"=\u003e\"User\",\n    \"resolve\"=\u003efunction($root,$args,$context){\n        return $context-\u003eme; //return object\n    }\n];\n```\n\nUser.php\n```php\nreturn [\n    \"fields\"=\u003e[\n        \"first_name\"=\u003e\"String\",\n        \"last_name\"=\u003e\"String\"\n    ]\n];\n```\nIt equivalent to build to following schema\n```gql\ntype Query{\n    me:User\n}\n\ntype User{\n    first_name:String\n    last_name:String\n}\n```\n\n#### Fields of custom type\nIf you want to create custom fields for custom object type, just create folder for the custom object\n\n##### example\nUser has multiple phone number\n\ngraphql/User.php\n```php\nreturn [\n    \"fields\"=\u003e[\n        \"first_name\"=\u003e\"String\",\n        \"last_name\"=\u003e\"String\"\n    ]\n];\n/* \nno need create phone in fields,\nby create file phone.php in User folder, it auto generate fields in User type\n*/\n```\n\ncreate phone.php in folder \"User\"\n\ngraphql/User/phone.php\n```php\nreturn [\n    \"type\"=\u003e\"[String]\",\n    \"resolve\"=\u003efunction($user,$args,$context){\n        return $user-\u003egetPhones(); //return multi phone\n    }\n];\n```\n\n```\ngraphql\n+-- Query\n|  +-- me.php\n+-- User\n|  +-- phone.php\n+-- User.php\n```\nIt equivalent to build to following schema\n```gql\ntype Query{\n    me:User\n}\n\ntype User{\n    first_name:String\n    last_name:String\n    phone:[String]\n}\n```\n\n\n### Sub folder structure\n\n```\ngraphql\n+-- Query\n|  +-- User\n|      +-- list.php\n|  +-- Invoice\n|      +-- list.php\n+-- User.php\n+-- Invoice.php\n```\n\nnow you can query by following\n```gql\nquery{\n    User{\n        list{\n            first_name\n            last_name\n        }\n    }\n    Invoice{\n        list{\n            invoice_no\n        }\n    }\n}\n```\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmathsgod%2Fgraphql-php-loader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmathsgod%2Fgraphql-php-loader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmathsgod%2Fgraphql-php-loader/lists"}