/diridea

📁 Diridea: process your different directory types

Primary LanguagePHPMIT LicenseMIT

📁 Diridea

The idea of this library is to provide a simple and easy to understand directory structure for the files in your project + you can run logic on the files and directories.

Abstract

*--[web|backend]_[public|private]_[expire|archive]\d[d|h]?_[encrypt]?_[backup]?_[cache]?

Regex

https://regex101.com/r/wM17gy/1

#(?<prefix>.*?)--(?<location>web|backend)_(?<visibility>public|private)(?<timings>(?<timing_option>_expire|_archive)(?<timing_value>\d+)(?<timing_unit>[d|h]))?(?<encrypt>_encrypt)??(?<backup>_backup)?(?<cache>_cache?)?#

Examples

e.g.: download--web_public_expire30d

-> directory with the prefix "download" available in the web, public for all system-users and the files will be expired and deleted after 30 days

e.g.: article_images--backend_private_archive7h_encrypt

-> directory with the prefix "article_images" available in the backend, only accessible for the current system-user and the files will be moved into the "article_images*/archive/" directory after 7 hours

Usage

$diridea = DirideaFactory::create( __DIR__ . '/fixture/overview/', __DIR__ . '/fixture/web/' ); $result = $diridea->run();

Unit Test:

  1. Composer is a prerequisite for running the tests.
composer install
  1. The tests can be executed by running this command from the root directory:
./vendor/bin/phpunit

Support

For support and donations please visit Github | Issues | PayPal | Patreon.

For status updates and release announcements please visit Releases | Twitter | Patreon.

For professional support please contact me.

Thanks

  • Thanks to GitHub (Microsoft) for hosting the code and a good infrastructure including Issues-Managment, etc.
  • Thanks to IntelliJ as they make the best IDEs for PHP and they gave me an open source license for PhpStorm!
  • Thanks to Travis CI for being the most awesome, easiest continous integration tool out there!
  • Thanks to StyleCI for the simple but powerfull code style check.
  • Thanks to PHPStan && Psalm for relly great Static analysis tools and for discover bugs in the code!