From c32de2ae7a1431d16652e22ef4025bf46563129d Mon Sep 17 00:00:00 2001 From: Awilum Date: Wed, 22 Apr 2020 23:33:27 +0300 Subject: [PATCH] feat(core): add Serializer and Parsers for data encoding/decoding/parsing. #424 --- src/flextype/bootstrap.php | 14 ++ src/flextype/config/settings.yaml | 6 + src/flextype/core/Entries/Entries.php | 76 +++++++-- src/flextype/core/Parsers/Parser.php | 93 +++-------- .../shortcodes/EntriesShortcodeExtension.php | 18 ++ .../shortcodes/RegistryShortcodeExtension.php | 17 ++ .../shortcodes/UrlShortcodeExtension.php | 22 +++ src/flextype/core/Plugins/Plugins.php | 10 +- .../{Parsers => Serializer}/Frontmatter.php | 0 .../core/{Parsers => Serializer}/Json.php | 0 src/flextype/core/Serializer/Serializer.php | 158 ++++++++++++++++++ .../core/{Parsers => Serializer}/Yaml.php | 0 src/flextype/dependencies.php | 15 ++ src/flextype/endpoints/delivery/entries.php | 4 +- src/flextype/endpoints/delivery/registry.php | 4 +- src/flextype/endpoints/images/images.php | 4 +- src/flextype/endpoints/management/entries.php | 34 ++-- 17 files changed, 365 insertions(+), 110 deletions(-) create mode 100644 src/flextype/core/Parsers/shortcodes/EntriesShortcodeExtension.php create mode 100644 src/flextype/core/Parsers/shortcodes/RegistryShortcodeExtension.php create mode 100644 src/flextype/core/Parsers/shortcodes/UrlShortcodeExtension.php rename src/flextype/core/{Parsers => Serializer}/Frontmatter.php (100%) rename src/flextype/core/{Parsers => Serializer}/Json.php (100%) create mode 100644 src/flextype/core/Serializer/Serializer.php rename src/flextype/core/{Parsers => Serializer}/Yaml.php (100%) diff --git a/src/flextype/bootstrap.php b/src/flextype/bootstrap.php index d5ad98e0..3fbbbd23 100755 --- a/src/flextype/bootstrap.php +++ b/src/flextype/bootstrap.php @@ -158,6 +158,20 @@ if ($flextype['registry']->get('flextype.settings.errors.display')) { */ date_default_timezone_set($flextype['registry']->get('flextype.settings.timezone')); +/** + * Init shortocodes + * + * Load Flextype Shortcodes extensions from directory /flextype/shortcodes/ based on settings.shortcodes.extensions array + */ +$shortcodes_extensions = $flextype['registry']->get('flextype.settings.shortcodes.extensions'); + +foreach ($shortcodes_extensions as $shortcodes_extension) { + $shortcodes_extension_file_path = ROOT_DIR . '/src/flextype/core/Parsers/shortcodes/' . $shortcodes_extension . 'ShortcodeExtension.php'; + if (file_exists($shortcodes_extension_file_path)) { + include_once $shortcodes_extension_file_path; + } +} + /** * Init plugins */ diff --git a/src/flextype/config/settings.yaml b/src/flextype/config/settings.yaml index 8e07e18d..ca1f9771 100644 --- a/src/flextype/config/settings.yaml +++ b/src/flextype/config/settings.yaml @@ -193,6 +193,12 @@ slugify: image: driver: gd +# Shortcodes +# +# - extensions: Flextype Shortcodes Extension to load. +shortcodes: + extensions: ['Entries', 'Registry', 'Url'] + # CORS # # CORS (Cross-origin resource sharing) allows JavaScript web apps to make HTTP requests to other domains. diff --git a/src/flextype/core/Entries/Entries.php b/src/flextype/core/Entries/Entries.php index bc5eef3c..57d3bc31 100755 --- a/src/flextype/core/Entries/Entries.php +++ b/src/flextype/core/Entries/Entries.php @@ -51,7 +51,7 @@ class Entries public $entries = []; /** - * Set Expression + * Expression * * @var array * @access public @@ -87,7 +87,7 @@ class Entries ]; /** - * Set Order Direction + * Entires Order Direction * * @var array * @access public @@ -98,7 +98,7 @@ class Entries ]; /** - * Set Visibility + * Entries Visibility * * @var array * @access public @@ -109,6 +109,23 @@ class Entries 'visible' => 'visible', ]; + /** + * Entries system fields + * + * @var array + * @access public + */ + public $system_fields = [ + 'published_at' => 'published_at', + 'published_by' => 'published_by', + 'created_at' => 'created_at', + 'modified_at' => 'modified_at', + 'slug' => 'slug', + 'routable' => 'routable', + 'parsers' => 'parsers', + 'visibility' => 'visibility', + ]; + /** * Flextype Dependency Container * @@ -187,7 +204,7 @@ class Entries // else Try to get requested entry from the filesystem } - $entry_decoded = $this->flextype['parser']->decode(Filesystem::read($entry_file), 'frontmatter'); + $entry_decoded = $this->flextype['serializer']->decode(Filesystem::read($entry_file), 'frontmatter'); // Add predefined entry items // Entry Published At @@ -212,6 +229,41 @@ class Entries $entry_decoded['visibility'] = (string) $this->visibility['visible']; } + // Parsers + if (isset($entry_decoded['parsers'])) { + foreach ($entry_decoded['parsers'] as $parser_name => $parser_data) { + if (in_array($parser_name, ['markdown', 'shortcodes'])) { + if (isset($entry_decoded['parsers'][$parser_name]['enabled']) && $entry_decoded['parsers'][$parser_name]['enabled'] === true) { + if (isset($entry_decoded['parsers'][$parser_name]['fields'])) { + if (is_array($entry_decoded['parsers'][$parser_name]['fields'])) { + foreach ($entry_decoded['parsers'][$parser_name]['fields'] as $field) { + if (! in_array($field, $this->system_fields)) { + if ($parser_name == 'markdown') { + $entry_decoded[$field] = $this->flextype['parser']->decode($entry_decoded[$field], 'markdown'); + } + if ($parser_name == 'shortcodes') { + $entry_decoded[$field] = $this->flextype['parser']->decode($entry_decoded[$field], 'shortcodes'); + } + } + } + } elseif ($entry_decoded['parsers']['shortcodes']['fields'] == "*") { + foreach ($entry_decoded as $key => $value) { + if (! in_array($key, $this->system_fields)) { + if ($parser_name == 'markdown') { + $entry_decoded[$key] = $this->flextype['parser']->decode($entry_decoded[$key], 'markdown'); + } + if ($parser_name == 'shortcodes') { + $entry_decoded[$key] = $this->flextype['parser']->decode($entry_decoded[$key], 'shortcodes'); + } + } + } + } + } + } + } + } + } + // Save decoded entry content into the cache $this->flextype['cache']->save($entry_cache_id, $entry_decoded); @@ -320,12 +372,12 @@ class Entries // Create entries array from entries list and ignore current requested entry foreach ($entries_list as $current_entry) { - if (strpos($current_entry['path'], $bind_id . '/entry' . '.' . $this->flextype->registry->get('flextype.entries.extension')) !== false) { + if (strpos($current_entry['path'], $bind_id . '/entry' . '.' . $this->flextype->registry->get('flextype.settings.entries.extension')) !== false) { // ignore ... } else { // We are checking... // Whether the requested entry is a director and whether the file entry is in this directory. - if ($current_entry['type'] === 'dir' && Filesystem::has($current_entry['path'] . '/entry' . '.' . $this->flextype->registry->get('flextype.entries.extension'))) { + if ($current_entry['type'] === 'dir' && Filesystem::has($current_entry['path'] . '/entry' . '.' . $this->flextype->registry->get('flextype.settings.entries.extension'))) { // Get entry uid // 1. Remove entries path // 2. Remove left and right slashes @@ -341,7 +393,7 @@ class Entries $entries_ids .= $uid; // Create entries IDs timestamps - $entries_ids_timestamps .= Filesystem::getTimestamp($current_entry['path'] . '/entry' . '.' . $this->flextype->registry->get('flextype.entries.extension')); + $entries_ids_timestamps .= Filesystem::getTimestamp($current_entry['path'] . '/entry' . '.' . $this->flextype->registry->get('flextype.settings.entries.extension')); } } } @@ -475,9 +527,9 @@ class Entries if (Filesystem::has($entry_file)) { $body = Filesystem::read($entry_file); - $entry = $this->flextype['parser']->decode($body, 'frontmatter'); + $entry = $this->flextype['serializer']->decode($body, 'frontmatter'); - return Filesystem::write($entry_file, $this->flextype['parser']->encode(array_merge($entry, $data), 'frontmatter')); + return Filesystem::write($entry_file, $this->flextype['serializer']->encode(array_merge($entry, $data), 'frontmatter')); } return false; @@ -501,7 +553,7 @@ class Entries // Try to create directory for new entry if (Filesystem::createDir($entry_dir)) { // Check if new entry file exists - if (! Filesystem::has($entry_file = $entry_dir . '/entry' . '.' . $this->flextype->registry->get('flextype.entries.extension'))) { + if (! Filesystem::has($entry_file = $entry_dir . '/entry' . '.' . $this->flextype->registry->get('flextype.settings.entries.extension'))) { $data['uuid'] = Uuid::uuid4()->toString(); $data['published_at'] = date($this->flextype->registry->get('flextype.settings.date_format'), time()); $data['created_at'] = date($this->flextype->registry->get('flextype.settings.date_format'), time()); @@ -520,7 +572,7 @@ class Entries $data['visibility'] = 'visible'; } - return Filesystem::write($entry_file, $this->flextype['parser']->encode($data, 'frontmatter')); + return Filesystem::write($entry_file, $this->flextype['serializer']->encode($data, 'frontmatter')); } return false; @@ -585,7 +637,7 @@ class Entries */ public function getFileLocation(string $id) : string { - return PATH['site'] . '/entries/' . $id . '/entry' . '.' . $this->flextype->registry->get('flextype.entries.extension'); + return PATH['site'] . '/entries/' . $id . '/entry' . '.' . $this->flextype->registry->get('flextype.settings.entries.extension'); } /** diff --git a/src/flextype/core/Parsers/Parser.php b/src/flextype/core/Parsers/Parser.php index 858acb2f..cd172386 100644 --- a/src/flextype/core/Parsers/Parser.php +++ b/src/flextype/core/Parsers/Parser.php @@ -24,16 +24,7 @@ class Parser * @var array */ private $parsers = [ - 'frontmatter' => [ - 'name' => 'frontmatter', - 'ext' => 'md', - ], 'json' => [ - 'name' => 'json', - 'ext' => 'json', - ], 'yaml' => [ - 'name' => 'yaml', - 'ext' => 'yaml', - ], 'markdown' => [ + 'markdown' => [ 'name' => 'markdown', 'ext' => 'md', ], @@ -66,23 +57,19 @@ class Parser * Dumps a PHP value to a string CONTENT. * * @param mixed $input Content to parse - * @param string $parser Parser type [frontmatter, json, yaml] + * @param string $parser Parser type [markdown] * * @return mixed PHP value converted to a string CONTENT. */ public function encode($input, string $parser) : string { switch ($parser) { - case 'frontmatter': - return Frontmatter::encode($input); + case 'markdown': + return $input; break; - case 'json': - return Json::encode($input); - - break; - case 'yaml': - return Yaml::encode($input); + case 'shortcodes': + return $input; break; default: @@ -102,57 +89,6 @@ class Parser public function decode(string $input, string $parser, bool $cache = true) { switch ($parser) { - case 'frontmatter': - if ($cache === true && $this->flextype['registry']->get('flextype.settings.cache.enabled') === true) { - $key = md5($input); - - if ($data_from_cache = $this->flextype['cache']->fetch($key)) { - return $data_from_cache; - } - - $data = Frontmatter::decode($input); - $this->flextype['cache']->save($key, $data); - - return $data; - } else { - return Frontmatter::decode($input); - } - - break; - case 'json': - if ($cache === true && $this->flextype['registry']->get('flextype.settings.cache.enabled') === true) { - $key = md5($input); - - if ($data_from_cache = $this->flextype['cache']->fetch($key)) { - return $data_from_cache; - } - - $data = Json::decode($input); - $this->flextype['cache']->save($key, $data); - - return $data; - } else { - return Json::decode($input); - } - - break; - case 'yaml': - if ($cache === true && $this->flextype['registry']->get('flextype.settings.cache.enabled') === true) { - $key = md5($input); - - if ($data_from_cache = $this->flextype['cache']->fetch($key)) { - return $data_from_cache; - } - - $data = Yaml::decode($input); - $this->flextype['cache']->save($key, $data); - - return $data; - } else { - return Yaml::decode($input); - } - - break; case 'markdown': if ($cache === true && $this->flextype['registry']->get('flextype.settings.cache.enabled') === true) { $key = md5($input); @@ -169,6 +105,23 @@ class Parser return Markdown::decode($input); } + break; + case 'shortcodes': + if ($cache === true && $this->flextype['registry']->get('flextype.settings.cache.enabled') === true) { + $key = md5($input); + + if ($data_from_cache = $this->flextype['cache']->fetch($key)) { + return $data_from_cache; + } + + $data = $this->flextype['shortcodes']->process($input); + $this->flextype['cache']->save($key, $data); + + return $data; + } else { + return $this->flextype['shortcodes']->process($input); + } + break; default: // code... diff --git a/src/flextype/core/Parsers/shortcodes/EntriesShortcodeExtension.php b/src/flextype/core/Parsers/shortcodes/EntriesShortcodeExtension.php new file mode 100644 index 00000000..554ea462 --- /dev/null +++ b/src/flextype/core/Parsers/shortcodes/EntriesShortcodeExtension.php @@ -0,0 +1,18 @@ +addHandler('entries_fetch', static function (ShortcodeInterface $s) use ($flextype) { + return Arr::get($flextype['entries']->fetch($s->getParameter('id')), $s->getParameter('field'), $s->getParameter('default')); +}); diff --git a/src/flextype/core/Parsers/shortcodes/RegistryShortcodeExtension.php b/src/flextype/core/Parsers/shortcodes/RegistryShortcodeExtension.php new file mode 100644 index 00000000..d39ab707 --- /dev/null +++ b/src/flextype/core/Parsers/shortcodes/RegistryShortcodeExtension.php @@ -0,0 +1,17 @@ +addHandler('registry_get', static function (ShortcodeInterface $s) use ($flextype) { + return $flextype['registry']->get($s->getParameter('name'), $s->getParameter('default')); +}); diff --git a/src/flextype/core/Parsers/shortcodes/UrlShortcodeExtension.php b/src/flextype/core/Parsers/shortcodes/UrlShortcodeExtension.php new file mode 100644 index 00000000..4375be28 --- /dev/null +++ b/src/flextype/core/Parsers/shortcodes/UrlShortcodeExtension.php @@ -0,0 +1,22 @@ +addHandler('url', static function () use ($flextype) { + if ($flextype['registry']->has('flextype.settings.url') && $flextype['registry']->get('flextype.settings.url') != '') { + return $flextype['registry']->get('flextype.settings.url'); + } else { + return Uri::createFromEnvironment(new Environment($_SERVER))->getBaseUrl(); + } +}); diff --git a/src/flextype/core/Plugins/Plugins.php b/src/flextype/core/Plugins/Plugins.php index 62c3431c..dd45774b 100755 --- a/src/flextype/core/Plugins/Plugins.php +++ b/src/flextype/core/Plugins/Plugins.php @@ -43,7 +43,7 @@ class Plugins public function __construct($flextype, $app) { $this->flextype = $flextype; - $this->locales = $this->flextype['parser']->decode(Filesystem::read(ROOT_DIR . '/src/flextype/config/locales.yaml'), 'yaml'); + $this->locales = $this->flextype['serializer']->decode(Filesystem::read(ROOT_DIR . '/src/flextype/config/locales.yaml'), 'yaml'); } /** @@ -126,7 +126,7 @@ class Plugins // Get default plugin settings content $default_plugin_settings_file_content = Filesystem::read($default_plugin_settings_file); - $default_plugin_settings = $this->flextype['parser']->decode($default_plugin_settings_file_content, 'yaml'); + $default_plugin_settings = $this->flextype['serializer']->decode($default_plugin_settings_file_content, 'yaml'); // Create site plugin settings file ! Filesystem::has($site_plugin_settings_file) and Filesystem::write($site_plugin_settings_file, $default_plugin_settings_file_content); @@ -137,7 +137,7 @@ class Plugins if (trim($site_plugin_settings_file_content) === '') { $site_plugin_settings = []; } else { - $site_plugin_settings = $this->flextype['parser']->decode($site_plugin_settings_file_content, 'yaml'); + $site_plugin_settings = $this->flextype['serializer']->decode($site_plugin_settings_file_content, 'yaml'); } // Check if default plugin manifest file exists @@ -147,7 +147,7 @@ class Plugins // Get default plugin manifest content $default_plugin_manifest_file_content = Filesystem::read($default_plugin_manifest_file); - $default_plugin_manifest = $this->flextype['parser']->decode($default_plugin_manifest_file_content, 'yaml'); + $default_plugin_manifest = $this->flextype['serializer']->decode($default_plugin_manifest_file_content, 'yaml'); // Merge plugin settings and manifest data $plugins[$plugin['dirname']]['manifest'] = $default_plugin_manifest; @@ -210,7 +210,7 @@ class Plugins throw new RuntimeException('Load file: ' . $language_file . ' - failed!'); } - $translates = $this->flextype['parser']->decode($content, 'yaml'); + $translates = $this->flextype['serializer']->decode($content, 'yaml'); I18n::add($translates, $locale); } diff --git a/src/flextype/core/Parsers/Frontmatter.php b/src/flextype/core/Serializer/Frontmatter.php similarity index 100% rename from src/flextype/core/Parsers/Frontmatter.php rename to src/flextype/core/Serializer/Frontmatter.php diff --git a/src/flextype/core/Parsers/Json.php b/src/flextype/core/Serializer/Json.php similarity index 100% rename from src/flextype/core/Parsers/Json.php rename to src/flextype/core/Serializer/Json.php diff --git a/src/flextype/core/Serializer/Serializer.php b/src/flextype/core/Serializer/Serializer.php new file mode 100644 index 00000000..fbf71ef0 --- /dev/null +++ b/src/flextype/core/Serializer/Serializer.php @@ -0,0 +1,158 @@ + [ + 'name' => 'frontmatter', + 'ext' => 'md', + ], 'json' => [ + 'name' => 'json', + 'ext' => 'json', + ], 'yaml' => [ + 'name' => 'yaml', + 'ext' => 'yaml', + ], + ]; + + /** + * Constructor + * + * @access public + */ + public function __construct($flextype) + { + $this->flextype = $flextype; + } + + /** + * Get Parser Information + * + * @param string $input Content to parse + * @param string $serializer Parser type [frontmatter, json, yaml] + * + * @return array + */ + public function getParserInfo(string $serializer) : array + { + return $this->serializer[$serializer]; + } + + /** + * Dumps a PHP value to a string CONTENT. + * + * @param mixed $input Content to parse + * @param string $serializer Parser type [frontmatter, json, yaml] + * + * @return mixed PHP value converted to a string CONTENT. + */ + public function encode($input, string $serializer) : string + { + switch ($serializer) { + case 'frontmatter': + return Frontmatter::encode($input); + + break; + case 'json': + return Json::encode($input); + + break; + case 'yaml': + return Yaml::encode($input); + + break; + default: + break; + } + } + + /** + * Parse INPUT content into a PHP value. + * + * @param string $input Content to parse + * @param string $serializer Serializer type [frontmatter, json, yaml] + * @param bool $cache Cache result data or no. Default is true + * + * @return mixed The Content converted to a PHP value + */ + public function decode(string $input, string $serializer, bool $cache = true) + { + switch ($serializer) { + case 'frontmatter': + if ($cache === true && $this->flextype['registry']->get('flextype.settings.cache.enabled') === true) { + $key = md5($input); + + if ($data_from_cache = $this->flextype['cache']->fetch($key)) { + return $data_from_cache; + } + + $data = Frontmatter::decode($input); + $this->flextype['cache']->save($key, $data); + + return $data; + } else { + return Frontmatter::decode($input); + } + + break; + case 'json': + if ($cache === true && $this->flextype['registry']->get('flextype.settings.cache.enabled') === true) { + $key = md5($input); + + if ($data_from_cache = $this->flextype['cache']->fetch($key)) { + return $data_from_cache; + } + + $data = Json::decode($input); + $this->flextype['cache']->save($key, $data); + + return $data; + } else { + return Json::decode($input); + } + + break; + case 'yaml': + if ($cache === true && $this->flextype['registry']->get('flextype.settings.cache.enabled') === true) { + $key = md5($input); + + if ($data_from_cache = $this->flextype['cache']->fetch($key)) { + return $data_from_cache; + } + + $data = Yaml::decode($input); + $this->flextype['cache']->save($key, $data); + + return $data; + } else { + return Yaml::decode($input); + } + + break; + default: + // code... + break; + } + } +} diff --git a/src/flextype/core/Parsers/Yaml.php b/src/flextype/core/Serializer/Yaml.php similarity index 100% rename from src/flextype/core/Parsers/Yaml.php rename to src/flextype/core/Serializer/Yaml.php diff --git a/src/flextype/dependencies.php b/src/flextype/dependencies.php index 8300518b..0183c4bf 100644 --- a/src/flextype/dependencies.php +++ b/src/flextype/dependencies.php @@ -34,6 +34,7 @@ use League\Glide\Responses\SlimResponseFactory; use League\Glide\ServerFactory; use Monolog\Handler\StreamHandler; use Monolog\Logger; +use Thunder\Shortcode\ShortcodeFacade; use function date; use function extension_loaded; use function ucfirst; @@ -112,6 +113,20 @@ $flextype['cache'] = static function ($container) use ($flextype) { return new Cache($flextype); }; +/** + * Add shortcodes service to Flextype container + */ +$flextype['shortcodes'] = static function ($container) { + return new ShortcodeFacade(); +}; + +/** + * Add serializer service to Flextype container + */ +$flextype['serializer'] = static function ($container) use ($flextype) { + return new Serializer($flextype); +}; + /** * Add parser service to Flextype container */ diff --git a/src/flextype/endpoints/delivery/entries.php b/src/flextype/endpoints/delivery/entries.php index 56873b36..d4689e42 100644 --- a/src/flextype/endpoints/delivery/entries.php +++ b/src/flextype/endpoints/delivery/entries.php @@ -59,7 +59,7 @@ $app->get('/api/delivery/entries', function (Request $request, Response $respons $delivery_entries_token_file_path = PATH['site'] . '/tokens/delivery/entries/' . $token. '/token.yaml'; // Set delivery token file - if ($delivery_entries_token_file_data = $flextype['parser']->decode(Filesystem::read($delivery_entries_token_file_path), 'yaml')) { + if ($delivery_entries_token_file_data = $flextype['serializer']->decode(Filesystem::read($delivery_entries_token_file_path), 'yaml')) { if ($delivery_entries_token_file_data['state'] === 'disabled' || ($delivery_entries_token_file_data['limit_calls'] !== 0 && $delivery_entries_token_file_data['calls'] >= $delivery_entries_token_file_data['limit_calls'])) { return $response->withJson($api_sys_messages['AccessTokenInvalid'], 401); @@ -72,7 +72,7 @@ $app->get('/api/delivery/entries', function (Request $request, Response $respons $response_code = count($response_data['data']) > 0 ? 200 : 404; // Update calls counter - Filesystem::write($delivery_entries_token_file_path, $flextype['parser']->encode(array_replace_recursive($delivery_entries_token_file_data, ['calls' => $delivery_entries_token_file_data['calls'] + 1]), 'yaml')); + Filesystem::write($delivery_entries_token_file_path, $flextype['serializer']->encode(array_replace_recursive($delivery_entries_token_file_data, ['calls' => $delivery_entries_token_file_data['calls'] + 1]), 'yaml')); if ($response_code == 404) { diff --git a/src/flextype/endpoints/delivery/registry.php b/src/flextype/endpoints/delivery/registry.php index 7770f3e8..2875ab8f 100644 --- a/src/flextype/endpoints/delivery/registry.php +++ b/src/flextype/endpoints/delivery/registry.php @@ -56,7 +56,7 @@ $app->get('/api/delivery/registry', function (Request $request, Response $respon $delivery_registry_token_file_path = PATH['site'] . '/tokens/delivery/registry/' . $token . '/token.yaml'; // Set delivery token file - if ($delivery_registry_token_file_data = $flextype['parser']->decode(Filesystem::read($delivery_registry_token_file_path), 'yaml')) { + if ($delivery_registry_token_file_data = $flextype['serializer']->decode(Filesystem::read($delivery_registry_token_file_path), 'yaml')) { if ($delivery_registry_token_file_data['state'] === 'disabled' || ($delivery_registry_token_file_data['limit_calls'] !== 0 && $delivery_registry_token_file_data['calls'] >= $delivery_registry_token_file_data['limit_calls'])) { return $response->withJson($api_sys_messages['AccessTokenInvalid'], 401); @@ -76,7 +76,7 @@ $app->get('/api/delivery/registry', function (Request $request, Response $respon } // Update calls counter - Filesystem::write($delivery_registry_token_file_path, $flextype['parser']->encode(array_replace_recursive($delivery_registry_token_file_data, ['calls' => $delivery_registry_token_file_data['calls'] + 1]), 'yaml')); + Filesystem::write($delivery_registry_token_file_path, $flextype['serializer']->encode(array_replace_recursive($delivery_registry_token_file_data, ['calls' => $delivery_registry_token_file_data['calls'] + 1]), 'yaml')); if ($response_code == 404) { diff --git a/src/flextype/endpoints/images/images.php b/src/flextype/endpoints/images/images.php index a682bce7..5433bd6e 100644 --- a/src/flextype/endpoints/images/images.php +++ b/src/flextype/endpoints/images/images.php @@ -58,7 +58,7 @@ $app->get('/api/images/{path:.+}', function (Request $request, Response $respons $delivery_images_token_file_path = PATH['site'] . '/tokens/images/' . $token . '/token.yaml'; // Set delivery token file - if ($delivery_images_token_file_data = $flextype['parser']->decode(Filesystem::read($delivery_images_token_file_path), 'yaml')) { + if ($delivery_images_token_file_data = $flextype['serializer']->decode(Filesystem::read($delivery_images_token_file_path), 'yaml')) { if ($delivery_images_token_file_data['state'] === 'disabled' || ($delivery_images_token_file_data['limit_calls'] !== 0 && $delivery_images_token_file_data['calls'] >= $delivery_images_token_file_data['limit_calls'])) { @@ -66,7 +66,7 @@ $app->get('/api/images/{path:.+}', function (Request $request, Response $respons } // Update calls counter - Filesystem::write($delivery_images_token_file_path, $flextype['parser']->encode(array_replace_recursive($delivery_images_token_file_data, ['calls' => $delivery_images_token_file_data['calls'] + 1]), 'yaml')); + Filesystem::write($delivery_images_token_file_path, $flextype['serializer']->encode(array_replace_recursive($delivery_images_token_file_data, ['calls' => $delivery_images_token_file_data['calls'] + 1]), 'yaml')); if (Filesystem::has(PATH['site'] . '/uploads/entries/' . $args['path'])) { header('Access-Control-Allow-Origin: *'); diff --git a/src/flextype/endpoints/management/entries.php b/src/flextype/endpoints/management/entries.php index 8c9c7aa3..3645cc29 100644 --- a/src/flextype/endpoints/management/entries.php +++ b/src/flextype/endpoints/management/entries.php @@ -65,7 +65,7 @@ $app->get('/api/management/entries', function (Request $request, Response $respo $management_entries_token_file_path = PATH['site'] . '/tokens/management/entries/' . $token. '/token.yaml'; // Set management token file - if ($management_entries_token_file_data = $flextype['parser']->decode(Filesystem::read($management_entries_token_file_path), 'yaml')) { + if ($management_entries_token_file_data = $flextype['serializer']->decode(Filesystem::read($management_entries_token_file_path), 'yaml')) { if ($management_entries_token_file_data['state'] === 'disabled' || ($management_entries_token_file_data['limit_calls'] !== 0 && $management_entries_token_file_data['calls'] >= $management_entries_token_file_data['limit_calls'])) { return $response->withJson($api_sys_messages['AccessTokenInvalid'], 401); @@ -78,7 +78,7 @@ $app->get('/api/management/entries', function (Request $request, Response $respo $response_code = count($response_data['data']) > 0 ? 200 : 404; // Update calls counter - Filesystem::write($management_entries_token_file_path, $flextype['parser']->encode(array_replace_recursive($management_entries_token_file_data, ['calls' => $management_entries_token_file_data['calls'] + 1]), 'yaml')); + Filesystem::write($management_entries_token_file_path, $flextype['serializer']->encode(array_replace_recursive($management_entries_token_file_data, ['calls' => $management_entries_token_file_data['calls'] + 1]), 'yaml')); if ($response_code == 404) { @@ -138,8 +138,8 @@ $app->post('/api/management/entries', function (Request $request, Response $resp $access_token_file_path = PATH['site'] . '/tokens/access/' . $access_token . '/token.yaml'; // Set management and access token file - if (($management_entries_token_file_data = $flextype['parser']->decode(Filesystem::read($management_entries_token_file_path), 'yaml')) && - ($access_token_file_data = $flextype['parser']->decode(Filesystem::read($access_token_file_path), 'yaml'))) { + if (($management_entries_token_file_data = $flextype['serializer']->decode(Filesystem::read($management_entries_token_file_path), 'yaml')) && + ($access_token_file_data = $flextype['serializer']->decode(Filesystem::read($access_token_file_path), 'yaml'))) { if ($management_entries_token_file_data['state'] === 'disabled' || ($management_entries_token_file_data['limit_calls'] !== 0 && $management_entries_token_file_data['calls'] >= $management_entries_token_file_data['limit_calls'])) { @@ -164,7 +164,7 @@ $app->post('/api/management/entries', function (Request $request, Response $resp $response_code = ($create_entry) ? 200 : 404; // Update calls counter - Filesystem::write($management_entries_token_file_path, $flextype['parser']->encode(array_replace_recursive($management_entries_token_file_data, ['calls' => $management_entries_token_file_data['calls'] + 1]), 'yaml')); + Filesystem::write($management_entries_token_file_path, $flextype['serializer']->encode(array_replace_recursive($management_entries_token_file_data, ['calls' => $management_entries_token_file_data['calls'] + 1]), 'yaml')); if ($response_code == 404) { @@ -223,8 +223,8 @@ $app->patch('/api/management/entries', function (Request $request, Response $res $access_token_file_path = PATH['site'] . '/tokens/access/' . $access_token . '/token.yaml'; // Set management and access token file - if (($management_entries_token_file_data = $flextype['parser']->decode(Filesystem::read($management_entries_token_file_path), 'yaml')) && - ($access_token_file_data = $flextype['parser']->decode(Filesystem::read($access_token_file_path), 'yaml'))) { + if (($management_entries_token_file_data = $flextype['serializer']->decode(Filesystem::read($management_entries_token_file_path), 'yaml')) && + ($access_token_file_data = $flextype['serializer']->decode(Filesystem::read($access_token_file_path), 'yaml'))) { if ($management_entries_token_file_data['state'] === 'disabled' || ($management_entries_token_file_data['limit_calls'] !== 0 && $management_entries_token_file_data['calls'] >= $management_entries_token_file_data['limit_calls'])) { @@ -249,7 +249,7 @@ $app->patch('/api/management/entries', function (Request $request, Response $res $response_code = ($update_entry) ? 200 : 404; // Update calls counter - Filesystem::write($management_entries_token_file_path, $flextype['parser']->encode(array_replace_recursive($management_entries_token_file_data, ['calls' => $management_entries_token_file_data['calls'] + 1]), 'yaml')); + Filesystem::write($management_entries_token_file_path, $flextype['serializer']->encode(array_replace_recursive($management_entries_token_file_data, ['calls' => $management_entries_token_file_data['calls'] + 1]), 'yaml')); if ($response_code == 404) { @@ -308,8 +308,8 @@ $app->put('/api/management/entries', function (Request $request, Response $respo $access_token_file_path = PATH['site'] . '/tokens/access/' . $access_token . '/token.yaml'; // Set management and access token file - if (($management_entries_token_file_data = $flextype['parser']->decode(Filesystem::read($management_entries_token_file_path), 'yaml')) && - ($access_token_file_data = $flextype['parser']->decode(Filesystem::read($access_token_file_path), 'yaml'))) { + if (($management_entries_token_file_data = $flextype['serializer']->decode(Filesystem::read($management_entries_token_file_path), 'yaml')) && + ($access_token_file_data = $flextype['serializer']->decode(Filesystem::read($access_token_file_path), 'yaml'))) { if ($management_entries_token_file_data['state'] === 'disabled' || ($management_entries_token_file_data['limit_calls'] !== 0 && $management_entries_token_file_data['calls'] >= $management_entries_token_file_data['limit_calls'])) { @@ -335,7 +335,7 @@ $app->put('/api/management/entries', function (Request $request, Response $respo $response_code = ($rename_entry) ? 200 : 404; // Update calls counter - Filesystem::write($management_entries_token_file_path, $flextype['parser']->encode(array_replace_recursive($management_entries_token_file_data, ['calls' => $management_entries_token_file_data['calls'] + 1]), 'yaml')); + Filesystem::write($management_entries_token_file_path, $flextype['serializer']->encode(array_replace_recursive($management_entries_token_file_data, ['calls' => $management_entries_token_file_data['calls'] + 1]), 'yaml')); if ($response_code == 404) { @@ -394,8 +394,8 @@ $app->put('/api/management/entries/copy', function (Request $request, Response $ $access_token_file_path = PATH['site'] . '/tokens/access/' . $access_token . '/token.yaml'; // Set management and access token file - if (($management_entries_token_file_data = $flextype['parser']->decode(Filesystem::read($management_entries_token_file_path), 'yaml')) && - ($access_token_file_data = $flextype['parser']->decode(Filesystem::read($access_token_file_path), 'yaml'))) { + if (($management_entries_token_file_data = $flextype['serializer']->decode(Filesystem::read($management_entries_token_file_path), 'yaml')) && + ($access_token_file_data = $flextype['serializer']->decode(Filesystem::read($access_token_file_path), 'yaml'))) { if ($management_entries_token_file_data['state'] === 'disabled' || ($management_entries_token_file_data['limit_calls'] !== 0 && $management_entries_token_file_data['calls'] >= $management_entries_token_file_data['limit_calls'])) { @@ -421,7 +421,7 @@ $app->put('/api/management/entries/copy', function (Request $request, Response $ $response_code = ($copy_entry) ? 200 : 404; // Update calls counter - Filesystem::write($management_entries_token_file_path, $flextype['parser']->encode(array_replace_recursive($management_entries_token_file_data, ['calls' => $management_entries_token_file_data['calls'] + 1]), 'yaml')); + Filesystem::write($management_entries_token_file_path, $flextype['serializer']->encode(array_replace_recursive($management_entries_token_file_data, ['calls' => $management_entries_token_file_data['calls'] + 1]), 'yaml')); if ($response_code == 404) { @@ -478,8 +478,8 @@ $app->delete('/api/management/entries', function (Request $request, Response $re $access_token_file_path = PATH['site'] . '/tokens/access/' . $access_token . '/token.yaml'; // Set management and access token file - if (($management_entries_token_file_data = $flextype['parser']->decode(Filesystem::read($management_entries_token_file_path), 'yaml')) && - ($access_token_file_data = $flextype['parser']->decode(Filesystem::read($access_token_file_path), 'yaml'))) { + if (($management_entries_token_file_data = $flextype['serializer']->decode(Filesystem::read($management_entries_token_file_path), 'yaml')) && + ($access_token_file_data = $flextype['serializer']->decode(Filesystem::read($access_token_file_path), 'yaml'))) { if ($management_entries_token_file_data['state'] === 'disabled' || ($management_entries_token_file_data['limit_calls'] !== 0 && $management_entries_token_file_data['calls'] >= $management_entries_token_file_data['limit_calls'])) { @@ -498,7 +498,7 @@ $app->delete('/api/management/entries', function (Request $request, Response $re $response_code = ($delete_entry) ? 204 : 404; // Update calls counter - Filesystem::write($management_entries_token_file_path, $flextype['parser']->encode(array_replace_recursive($management_entries_token_file_data, ['calls' => $management_entries_token_file_data['calls'] + 1]), 'yaml')); + Filesystem::write($management_entries_token_file_path, $flextype['serializer']->encode(array_replace_recursive($management_entries_token_file_data, ['calls' => $management_entries_token_file_data['calls'] + 1]), 'yaml')); if ($response_code == 404) {