{"id":22292049,"url":"https://github.com/aedart/athenaeum-properties","last_synced_at":"2025-07-28T19:09:29.120Z","repository":{"id":56899591,"uuid":"234382816","full_name":"aedart/athenaeum-properties","owner":"aedart","description":"[READ ONLY] Athenaeum Properties package - see https://github.com/aedart/athenaeum","archived":false,"fork":false,"pushed_at":"2024-10-29T12:59:46.000Z","size":59,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-10-29T15:25:23.166Z","etag":null,"topics":["magic-methods","overloading","properties"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aedart.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":"2020-01-16T18:16:38.000Z","updated_at":"2024-10-29T12:59:50.000Z","dependencies_parsed_at":"2023-11-17T09:53:28.366Z","dependency_job_id":"d483d56b-7c10-4981-ab0e-71f55ebdc492","html_url":"https://github.com/aedart/athenaeum-properties","commit_stats":{"total_commits":146,"total_committers":2,"mean_commits":73.0,"dds":0.3972602739726028,"last_synced_commit":"c46e36fd36a969ed61042fc0a31ac7d274cfc3d0"},"previous_names":[],"tags_count":130,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aedart%2Fathenaeum-properties","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aedart%2Fathenaeum-properties/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aedart%2Fathenaeum-properties/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aedart%2Fathenaeum-properties/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aedart","download_url":"https://codeload.github.com/aedart/athenaeum-properties/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227962352,"owners_count":17847938,"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":["magic-methods","overloading","properties"],"created_at":"2024-12-03T17:19:24.489Z","updated_at":"2024-12-03T17:19:25.568Z","avatar_url":"https://github.com/aedart.png","language":"PHP","readme":"# Athenaeum Properties\n\nProvides means to dynamically deal with inaccessible properties, by implementing some of PHP's [magic methods](https://www.php.net/manual/en/language.oop5.magic.php).\n\nThe usage of getters- and setters-methods is enforced, ensuring that if a property is indeed available, its corresponding getter or setter method will be invoked.\n\nThe term 'overload', in this context, refers to [PHP’s own definition hereof](http://php.net/manual/en/language.oop5.overloading.php).\n\n## Example\n\n```php\nuse Aedart\\Properties\\Overload;\n\n/**\n * @property string|null $name Name of a person\n */\nclass Person\n{\n    use Overload;\n    \n    protected ?string $name = null;\n    \n    public function getName() : string\n    {\n\t    return $this-\u003ename;\n    }\n\n    public function setName(string $value)\n    {\n        if(empty($value)){\n            throw new InvalidArgumentException('Provided name is invalid');\n        }\n        \n        $this-\u003ename = $value;\n        \n        return $this;\n    }\n}\n```\n\nElsewhere in your application, you can invoke the following:\n\n```php\n$person = new Person();\n$person-\u003ename = 'Alin'; // Invokes the setName(...)\n\necho $person-\u003ename;\t// Invokes the getName(), then outputs 'Alin'\necho isset($person-\u003ename); // Invokes the __isset(), then outputs true\n\nunset($person-\u003ename); // Invokes the __unset() and destroys the name property\n```\n\n## Documentation\n\nPlease read the [official documentation](https://aedart.github.io/athenaeum/) for additional information.\n\n# Repository\n\nThe mono repository is located at [github.com/aedart/athenaeum](https://github.com/aedart/athenaeum)\n\n## Versioning\n\nThis package follows [Semantic Versioning 2.0.0](http://semver.org/)\n\n## License\n\n[BSD-3-Clause](http://spdx.org/licenses/BSD-3-Clause), Read the LICENSE file included in this package\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faedart%2Fathenaeum-properties","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faedart%2Fathenaeum-properties","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faedart%2Fathenaeum-properties/lists"}