diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f98cb99..5e6e11dc 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -97,6 +97,10 @@ * **entries** add new events: `onEntryHas`, `onEntryInitialized`, `onEntriesInitialized` ([#467](https://github.com/flextype/flextype/issues/467)) +* **helpers** add new helper `find()` for files and directories searching instead of `find_filter()` + +* **helpers** add new helper `filter()` for data collection filtering instead of `arrays_filter()` + ### Bug Fixes * **entries** fix issue with delete() method ([#465](https://github.com/flextype/flextype/issues/465)) diff --git a/src/flextype/Endpoints/entries.php b/src/flextype/Endpoints/entries.php index 4dd034a4..25d989a0 100644 --- a/src/flextype/Endpoints/entries.php +++ b/src/flextype/Endpoints/entries.php @@ -12,7 +12,7 @@ namespace Flextype; use Psr\Http\Message\ServerRequestInterface as Request; use Slim\Http\Response; use function array_replace_recursive; -use function arrays_filter; +use function filter; use function count; use function is_array; diff --git a/src/flextype/Foundation/Entries/Entries.php b/src/flextype/Foundation/Entries/Entries.php index 05b9008f..39f7ce02 100755 --- a/src/flextype/Foundation/Entries/Entries.php +++ b/src/flextype/Foundation/Entries/Entries.php @@ -12,7 +12,7 @@ namespace Flextype\Foundation\Entries; use Atomastic\Arrays\Arrays; use function array_merge; -use function arrays_filter; +use function filter; use function count; use function find_filter; use function ltrim; @@ -62,11 +62,11 @@ class Entries * @param bool $collection Set `true` if collection of entries need to be fetched. * @param array $filter Select items in collection by given conditions. * - * @return array|bool|int + * @return Arrays * * @access public */ - public function fetch(string $id, bool $collection = false, array $filter = []) + public function fetch(string $id, bool $collection = false, array $filter = []): Arrays { if ($collection) { return $this->fetchCollection($id, $filter); @@ -80,11 +80,11 @@ class Entries * * @param string $id Unique identifier of the entry(entries). * - * @return array The entry array data. + * @return Arrays * * @access public */ - public function fetchSingle(string $id): array + public function fetchSingle(string $id): Arrays { // Store data $this->storage['fetch_single']['id'] = $id; @@ -104,7 +104,7 @@ class Entries flextype('emitter')->emit('onEntryAfterCacheInitialized'); // Return entry from cache - return $this->storage['fetch_single']['data']; + return arrays($this->storage['fetch_single']['data']); } // Try to get current requested entry from filesystem @@ -115,7 +115,7 @@ class Entries // Try to get requested entry from the filesystem $entry_file_content = filesystem()->file($entry_file)->get(); if ($entry_file_content === false) { - return []; + return arrays([]); } // Decode entry file content @@ -134,11 +134,11 @@ class Entries } // Return entry data - return $this->storage['fetch_single']['data']; + return arrays($this->storage['fetch_single']['data']); } // Return empty array if entry is not founded - return []; + return arrays([]); } /** @@ -147,11 +147,11 @@ class Entries * @param string $id Unique identifier of the entry(entries). * @param array $filter Select items in collection by given conditions. * - * @return array|bool|int + * @return Arrays * * @access public */ - public function fetchCollection(string $id, array $filter = []) + public function fetchCollection(string $id, array $filter = []): Arrays { // Store data $this->storage['fetch_collection']['id'] = $this->getDirectoryLocation($id); @@ -161,7 +161,7 @@ class Entries flextype('emitter')->emit('onEntriesInitialized'); // Apply find_filter - $entries_list = find_filter($this->storage['fetch_collection']['id'], $filter); + $entries_list = find($this->storage['fetch_collection']['id'], $filter); // If entries founded in the entries folder // We are checking... Whether the requested entry is an a true entry. @@ -177,15 +177,15 @@ class Entries $this->storage['fetch_collection']['data'][$_id] = $this->fetchSingle($_id); } - // Apply arrays_filter - $this->storage['fetch_collection']['data'] = arrays_filter($this->storage['fetch_collection']['data'], $filter); + // Apply filter + $this->storage['fetch_collection']['data'] = filter($this->storage['fetch_collection']['data'], $filter); // Run event: onEntriesAfterInitialized flextype('emitter')->emit('onEntriesAfterInitialized'); } // Return entries array - return $this->storage['fetch_collection']['data']; + return arrays($this->storage['fetch_collection']['data']); } /** diff --git a/tests/Foundation/Entries/EntriesTest.php b/tests/Foundation/Entries/EntriesTest.php index 033415f8..86867c6a 100644 --- a/tests/Foundation/Entries/EntriesTest.php +++ b/tests/Foundation/Entries/EntriesTest.php @@ -34,7 +34,7 @@ test('test fetch() method', function () { $this->assertTrue(count($fetch) > 0); // 2 - $this->assertEquals([], flextype('entries')->fetch('bar')); + $this->assertEquals([], flextype('entries')->fetch('bar')->toArray()); // 3 flextype('entries')->create('zed', ['title' => 'Zed']); @@ -45,7 +45,7 @@ test('test fetch() method', function () { flextype('entries')->create('foo', []); flextype('entries')->create('foo/bar', []); flextype('entries')->create('foo/baz', ['foo' => ['bar' => 'zed']]); - $fetch = flextype('entries')->fetch('foo', true); + $fetch = flextype('entries')->fetch('foo', true)->toArray(); $this->assertTrue(count($fetch) > 0); }); @@ -57,23 +57,23 @@ test('test fetchSingle() method', function () { $this->assertTrue(count($fetch) > 0); // 2 - $this->assertEquals([], flextype('entries')->fetchSingle('bar')); + $this->assertEquals([], flextype('entries')->fetchSingle('bar')->toArray()); // 3 flextype('entries')->create('zed', ['title' => 'Zed']); - $fetch = flextype('entries')->fetchSingle('zed'); + $fetch = flextype('entries')->fetchSingle('zed')->toArray(); $this->assertEquals('Zed', $fetch['title']); // 4 flextype('entries')->setStorage('fetch_single.id', 'wrong-entry'); - $this->assertEquals([], flextype('entries')->fetchSingle('wrong-entry')); + $this->assertEquals([], flextype('entries')->fetchSingle('wrong-entry')->toArray()); }); test('test fetchCollection() method', function () { flextype('entries')->create('foo', []); flextype('entries')->create('foo/bar', []); flextype('entries')->create('foo/baz', []); - $fetch = flextype('entries')->fetchCollection('foo'); + $fetch = flextype('entries')->fetchCollection('foo')->toArray(); $this->assertTrue(count($fetch) > 0); });