{"id":24411234,"url":"https://github.com/membrane-php/membrane-core","last_synced_at":"2025-04-12T02:51:11.739Z","repository":{"id":59148836,"uuid":"485017464","full_name":"membrane-php/membrane-core","owner":"membrane-php","description":"Membrane is a general purpose input validation library, supports both PHP Attributes and OpenAPI specifications","archived":false,"fork":false,"pushed_at":"2024-04-02T09:29:03.000Z","size":734,"stargazers_count":1,"open_issues_count":25,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-04-02T10:59:00.472Z","etag":null,"topics":["hacktoberfest","membrane","openapi","openapi-validation","openapi3","validation"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/membrane-php.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}},"created_at":"2022-04-24T12:10:16.000Z","updated_at":"2024-04-15T10:50:42.608Z","dependencies_parsed_at":"2023-09-27T14:58:38.121Z","dependency_job_id":"6e4d2e1f-bbd5-4a74-9ee4-b404a004f730","html_url":"https://github.com/membrane-php/membrane-core","commit_stats":{"total_commits":162,"total_committers":4,"mean_commits":40.5,"dds":0.09259259259259256,"last_synced_commit":"fe5bb835eaf4ee1d8afb018fb70035a3d8b120f0"},"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/membrane-php%2Fmembrane-core","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/membrane-php%2Fmembrane-core/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/membrane-php%2Fmembrane-core/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/membrane-php%2Fmembrane-core/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/membrane-php","download_url":"https://codeload.github.com/membrane-php/membrane-core/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248509255,"owners_count":21115970,"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":["hacktoberfest","membrane","openapi","openapi-validation","openapi3","validation"],"created_at":"2025-01-20T06:33:56.763Z","updated_at":"2025-04-12T02:51:11.713Z","avatar_url":"https://github.com/membrane-php.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Membrane\n\nMembrane is a lightweight input validation layer which can be used to answer the question \"Is this input something we\nmight be able to process?\". Its\npurpose is to receive \"raw\" user input and produce a cleaned up, fully validated object or array representing that data,\nwhich the rest of your application\ncan use with confidence.\n\nIt is not intended to be a fully featured validation library, but instead focus on ensuring that the data you have\nreceived looks correct by focusing\non data types, ranges and formats.\n\nTo put this in context, membrane could be used to validate that a user submitting a request to edit a blog post has:\n\n- an integer id, greater than zero;\n- a string title between 10 and 80 characters;\n- a string post body at least 25 characters long;\n- a list of no more than 5 string tags, each with a length between 3 and 15 characters.\n\nHowever, it should not be used to validate that:\n\n- the blog post already exists;\n- that the user has permission to edit the blog post;\n- that the blog post is unpublished and thus still allowed to be edited.\n\nThese are all business rules which should be taken care of in a separate layer.\n\nMembrane will usually be your first line between a web request and your application, so I have made the design decision\nthat membrane will *NEVER* throw an\nexception because of bad user data. Exceptions will only be thrown due to membrane being setup incorrectly by the\ndeveloper. As such, you will always get a\nresult object back when validating user input even if the input was complete garbage.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmembrane-php%2Fmembrane-core","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmembrane-php%2Fmembrane-core","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmembrane-php%2Fmembrane-core/lists"}