{"id":33952953,"url":"https://github.com/method-hub/wp-file-system","last_synced_at":"2025-12-12T19:52:06.398Z","repository":{"id":315779438,"uuid":"1060792188","full_name":"method-hub/wp-file-system","owner":"method-hub","description":"A safe and convenient object-oriented wrapper for the WordPress Filesystem API","archived":false,"fork":false,"pushed_at":"2025-09-20T16:19:58.000Z","size":389,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-20T18:22:43.759Z","etag":null,"topics":["filesystem","filesystem-api","filesystem-library","fs","wordpress","wordpress-plugin","wp-filesystem"],"latest_commit_sha":null,"homepage":"https://packagist.org/packages/metapraxis/wp-file-system","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/method-hub.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-20T15:51:12.000Z","updated_at":"2025-09-20T17:52:55.000Z","dependencies_parsed_at":"2025-09-21T04:30:31.594Z","dependency_job_id":null,"html_url":"https://github.com/method-hub/wp-file-system","commit_stats":null,"previous_names":["method-hub/wp-file-system"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/method-hub/wp-file-system","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/method-hub%2Fwp-file-system","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/method-hub%2Fwp-file-system/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/method-hub%2Fwp-file-system/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/method-hub%2Fwp-file-system/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/method-hub","download_url":"https://codeload.github.com/method-hub/wp-file-system/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/method-hub%2Fwp-file-system/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27690140,"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","status":"online","status_checked_at":"2025-12-12T02:00:06.775Z","response_time":129,"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":["filesystem","filesystem-api","filesystem-library","fs","wordpress","wordpress-plugin","wp-filesystem"],"created_at":"2025-12-12T19:52:05.770Z","updated_at":"2025-12-12T19:52:06.393Z","avatar_url":"https://github.com/method-hub.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n[![CI/CD Pipeline](https://github.com/method-hub/wp-file-system/actions/workflows/main.yml/badge.svg)](https://github.com/method-hub/wp-file-system/actions/workflows/main.yml)\n[![Code Coverage](https://img.shields.io/badge/coverage-TBD-lightgrey)](https://github.com/method-hub/wp-file-system)\n![Plugin Version](https://img.shields.io/badge/version-0.0.1-blue)\n![PHP Version](https://img.shields.io/badge/php-%3E%3D7.4-8892BF.svg)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg style=\"border-radius: 10px\" src=\".github/logo/wp-file-system.png\" alt=\"Plugin Logo\" width=\"100\"/\u003e\n\u003c/p\u003e\n\n_A user-friendly, object-oriented wrapper for the native WordPress Filesystem API. Ensures reliable and portable file \noperations, fully compliant with WordPress core principles_.\n\n# WP File System\n\n`WP File System` is a plugin library created for the entire WordPress developer community. It is indispensable not only\nfor plugin and theme authors but also for technical specialists involved in deploying, maintaining, and customizing \nsites, as well as for anyone who actively works with the WordPress filesystem during development.\n\nIts philosophy is to solve one of the most common and complex problems in the WordPress ecosystem: \n**reliable and secure file operations.** This problem has two aspects:\n\n1.  **Direct use of PHP functions:** Functions like `file_put_contents`, `mkdir`, or `unlink` are a source of\ninstability. Code written with them becomes brittle and environment-dependent, often leading to fatal errors due to \nincorrect file permissions or specific hosting security configurations.\n\n2.  **Using third-party libraries:** Many developers try to solve this issue by integrating popular packages like\n`symfony/filesystem` or Laravel components. Despite their high quality, they become a \"foreign element\" in the WordPress\ncontext. These libraries are **unaware of the WordPress Filesystem API's existence**. They bypass the built-in WordPress\nmechanisms, ignoring the required file access method (`direct`, `ftp`, `ssh2`) that WordPress selects to ensure security\nand server compatibility. This leads to the same permission issues and makes secure interaction with the WordPress \ncore—for example, during extension installation or updates—impossible.\n\n`WP File System` solves both of these problems. It provides a simple, unified, and object-oriented interface that serves\nas a convenient wrapper for the native `WP_Filesystem` API. The library handles all the complexity: it automatically \ninitializes the filesystem, determines the correct access method, manages credentials, and ensures proper permissions\nare set, freeing the developer from this headache.\n\nUsing `WP File System` ensures that your code will be reliable, secure, and truly portable across different hosting \nenvironments, as it operates **in full compliance with the principles and mechanisms of the WordPress core.**\n\n## Getting started\n\nTo get started with the library and explore its features, please refer to our documentation. There you will find a \ndetailed guide on installation, configuration, and usage examples.\n\n*   [**Documentation in Russian**](./.github/documentation/ru/README.md)\n*   [**Documentation in English**](./.github/documentation/en/README.md)\n\n## Contributing\n\nWe welcome and appreciate community contributions to the project's development. If you would like to help with \ndevelopment, suggest new ideas, report a bug, or improve the documentation, please review our contribution guide.\n\n*   [**Contribution Guide (RU)**](./.github/documentation/ru/CONTRIBUTING.md)\n*   [**Contribution Guide (EN)**](./.github/documentation/en/CONTRIBUTING.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmethod-hub%2Fwp-file-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmethod-hub%2Fwp-file-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmethod-hub%2Fwp-file-system/lists"}