Skip to content

Latest commit

 

History

History
executable file
·
947 lines (687 loc) · 32.1 KB

CHANGELOG.md

File metadata and controls

executable file
·
947 lines (687 loc) · 32.1 KB

Release Notes for 1.x

1.0.0-alpha.3 (2022-11-19)

Features

  • core Core packages updated.
  • core Added new package Glowy Benchmark.

1.0.0-alpha.2 (2022-09-13)

Features

  • rest-api Added new Query API 587.

  • entries Added new private fields functionality for entries 585.

    • Private field starts with _ and evailable only in the current entry.

    entry.md

    ---
    title: Product item
    _message: Message...
    _vars:
      currency: "USD"
      vat: "@type[int] [[ strings().random(2, 1234567890) ]]"
    price: "[[ 100 + _vars.vat ]]"
    price_with_currency: "[[ price ~ ' ' ~ _vars.currency ]]"
    ---
    
    [[ title ]] // Product item
    
    [[ _message ]] // Message...

    response

    {
      "title": "Product item",
      "price": "120",
      "price_with_currency": "120 USD"
      "content": "Product item \n Message..."
    }
  • vars Added new Vars service to store global variables.

  • directives Added ability to disable expressions using !expressions.

  • directives Added ability to disable shortcodes using !shortcodes.

  • directives Added ability to disable markdown using !markdown.

  • directives Added ability to disable textile using !textile.

  • directives Added ability to disable php using !php.

  • directives Added ability to disable types using !types.

  • expressions Expressions language as a part of Parsers 586.

    • From now Expressions are part of Parsers, configurable and available globally.
    • Ability to configure opening/closing tags for variables, blocks and comments.
      opening_variable_tag: "[["
      closing_variable_tag: "]]"
      opening_block_tag: "[%"
      closing_block_tag: "%]"
      opening_comment_tag: "[#"
      closing_comment_tag: "#]"
    • Ability to write multiline expressions
      [[ 
        field1 ~
        field2 ~
        field2
      ]]
    • Ability to store parsed expressions in the cache.
    • Ability to quickly access current entries fields.
      [[ field_name ]]
  • expressions Added new expression function when.

  • expressions Added new expression function unless.

  • expressions Added new expression function time.

  • expressions Added new expression function strtotime.

  • expressions Added new expression function round.

  • expressions Added new expression function abs.

  • expressions Added support for Vars service. 583

    • New function vars() returns instance of Vars service.
    • New function var() for quick access to variables stored in Vars service.
  • shortcodes Added support for Vars service. 583

    • New shortcode (var) to get, set, unset and delete variables from Vars service.
  • core Added new package Guzzle.

  • core Added a new fetch helper, expression function and shortcode with the ability to fetch data from different sources, entries, files, and URLs. 581

Bug Fixes

  • expressions Fixed strings expression function.

  • expressions Fixed Entries Expressions methods.

  • helpers Fixed issue in collection helper with limit and offset double check.

BREAKING CHANGES

  • expressions Configuration for expressions moved from entries to parsers section.

  • expressions Use parsers()->expressions() instead of expressions() to access methods.

  • entries Local vars are replaced with global variables and local private fields.

  • shortcodes Use registerShortcodes() instead of initShortcodes() to register custom shortcodes.

  • directives Use registerDirectives() instead of initDirectives() to register custom directives.

  • expressions Use registerExpressions() instead of initExpressions() to register custom expressions.

1.0.0-alpha.1 (2022-07-12)

Features

  • core Minimum PHP version required PHP 8.1.0.

  • core Core application updated from Slim 3 to Slim 4!

    See: Upgrade Guide

  • core New PHP-DI added instead of Pimple DI.

    See: Usage Guide

  • console Added Extendable Flextype CLI Application.

    Flextype CLI Application 1.0.0-alpha.1
    
    Usage:
      command [options] [arguments]
    
    Options:
      -h, --help            Display help for the given command. When no command is given display help for the list command
      -q, --quiet           Do not output any message
      -V, --version         Display this application version
          --ansi|--no-ansi  Force (or disable --no-ansi) ANSI output
      -n, --no-interaction  Do not ask any interactive question
      -v|vv|vvv, --verbose  Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
    
    Available commands:
      about                       Get information about Flextype.
      completion                  Dump the shell completion script
      help                        Display help for a command
      list                        List commands
    cache
      cache:clear                 Clear cache.
      cache:clear-config          Clear cache config.
      cache:clear-data            Clear cache data.
      cache:clear-routes          Clear cache routes.
      cache:delete                Delete item.
      cache:delete-multiple       Delete mutiple items.
      cache:get                   Get item.
      cache:get-multiple          Get multiple items.
      cache:has                   Check whether cache item exists.
      cache:set                   Set item.
      cache:set-multiple          Set multiple items.
    entries
      entries:copy                Copy entry.
      entries:create              Create entry.
      entries:delete              Delete entry.
      entries:fetch               Fetch entry.
      entries:has                 Check whether entry exists.
      entries:move                Move entry.
      entries:update              Update entry.
    tokens
      tokens:create               Create a new unique token.
      tokens:delete               Delete token entry.
      tokens:fetch                Fetch token entry.
      tokens:generate             Generate token.
      tokens:generate-hash        Generate token hash.
      tokens:has                  Check whether token entry exists.
      tokens:update               Update tokens entry.
      tokens:verify-hash          Verify token hash.
    
  • core Added Thermage library for better Flextype CLI Application styling.

  • core Added ability to execute specific project related code.

    • before-plugins to bootstrap file before plugins intialization.
    • after-plugins to bootstrap file after plugins intialization.
  • core Added new core constants: FLEXTYPE_PROJECT_NAME, FLEXTYPE_PATH_PROJECT, FLEXTYPE_PATH_TMP, FLEXTYPE_START_TIME.

  • core Added ability to run Flextype in silent mode by disabling app and cli.

  • core Added New Glowy PHP Packages View, Macroable, Strings, Arrays, Csrf, Filesystem, Registry, Session.

  • core Added built-in I18n module.

  • core Added ability to override default constants

  • entries Added new functionality that allows implementing Virtual Entries by overriding default entries CRUD methods with the help of events.

  • entries Added ability to create completely customisable high-level collections for entries with their fields and various formats.

  • entries Added ability to set custom events for each entries collections.

  • entries Added ability to create and use entries fields directives.

    See: Documentation

  • entries Added ability to create custom entries macros.

    Built-in macros: entries, php, registry.

  • entries Added new method registry to get entries registry.

  • entries Added new method options to get entries options.

  • entries Added new method setOptions to set entries options.

  • entries Added new method setRegistry to set entries registry.

  • entries Added ability to override logic for built-in custom fields.

    Example: If you want to have your custom logic for processing field uuid just update flextype project settings.

    from:

    ...
    entries:
      default:
        ...
        fields:
          ...
          uuid:
            enabled: true
            path: "src/flextype/core/Entries/Fields/Default/UuidField.php"
          ...
        ...
      ...
    ...

    to:

    ...
    entries:
      default:
        ...
        fields:
          ...
          uuid:
            enabled: true
            path: "project/plugins/your-custom-plugin/Entries/Fields/Default/UuidField.php"
          ...
        ...
      ...
    ...
  • directives Added new directive @type to set field type.

  • directives Added new directive @markdown to parse markdown text inside current field.

  • directives Added new directive @shortcodes to parse shortcodes text inside current field.

  • directives Added new directive @textile to parse textile text inside current field.

  • directives Added new directive @php to execute php code text inside current field.

  • directives Added new directive [[ ]] to eval expression.

  • endpoints All Rest API Endpoints codebase was rewritten from scratch.

  • endpoints Added new Rest API Endpoint POST /api/v1/cache/clear to clear cache.

  • endpoints Added new Rest API Endpoint POST /api/v1/tokens/generate to generate token hash.

  • endpoints Added new Rest API Endpoint POST /api/v1/tokens/verify-hash to verify token hash.

  • endpoints Added new Rest API Endpoint POST /api/v1/tokens to create token entry.

  • endpoints Added new Rest API Endpoint PATCH /api/v1/tokens to update token entry.

  • endpoints Added new Rest API Endpoint DELETE /api/v1/tokens to delete token entry.

  • endpoints Added new Rest API Endpoint GET /api/v1/tokens to fetch token entry.

  • csrf Added Glowy CSRF protection for Cross Site Request Forgery protection by comparing provided token with session token to ensure request validity.

  • frontmatter Added ability to define custom frontmatter header parsers for entries. Example: instead of first --- you may set serializer ---json, ---json5 ---yaml or ---neon.

  • serializers Added new serializer Json5.

    See: Documentation

  • serializers Added new serializer Neon.

    See: Documentation

  • serializers Added ability to set global settings for all built-in serializers.

    src/flextype/settings.yaml

    serializers:
      json: 
        decode:
          cache: 
            enabled: true
            string: ""
          assoc: true
          depth: 512
          flags: 0
        encode: 
          options: 0
          depth: 512
      json5: 
        decode:
          cache: 
            enabled: true
            string: ""
          assoc: true
          depth: 512
          flags: 0
        encode: 
          options: 0
          depth: 512
      yaml:
        decode:
          cache: 
            enabled: true
            string: ""
          native: true
          flags: 0
        encode:    
          inline: 10
          indent: 2
          flags: 0
      frontmatter:
        decode:
          cache: 
            enabled: true
            string: ""
          cache_id_string: ""
          header:
            serializer: yaml
            allowed: ['yaml', 'json', 'json5', 'neon']
        encode:    
          header:
            serializer: yaml
            allowed: ['yaml', 'json', 'json5', 'neon']
      neon:
        decode:
          cache: 
            enabled: true
            string: ""
        encode:
          blockMode: false
          indentation: "\t"
      phparray:
        decode:
          cache: 
            enabled: true
            string: ""
        encode:
          wrap: true
  • serializers Added ability to set specific header serializer for Frontmatter serializer (default is YAML).

    src/flextype/settings.yaml

    frontmatter:
      decode:
        cache: 
          enabled: true
          string: ""
        cache_id_string: ""
        header:
          serializer: yaml
          allowed: ['yaml', 'json', 'json5', 'neon']
      encode:    
        header:
          serializer: yaml
          allowed: ['yaml', 'json', 'json5', 'neon']
  • parsers Markdown parser Commonmark updated to v2

  • parsers Added new Textile parser.

  • parsers Added ability to set global settings for all parsers.

    src/flextype/settings.yaml

    parsers:
      markdown:
        cache: 
          enabled: true
          string: ""
        commonmark:
          renderer:
            block_separator: "\n"
            inner_separator: "\n"
            soft_break: "\n"
          commonmark:
            enable_em: true
            enable_strong: true
            use_asterisk: true
            use_underscore: true
            unordered_list_markers: ['-', '*', '+']
          html_input: 'allow'
          allow_unsafe_links: false
          max_nesting_level: 9223372036854775807
          slug_normalizer:
            max_length: 255
      textile:
        cache: 
          enabled: true
          string: ""
        restricted: false
        document_type: 'xhtml'
        document_root_directory: ''
        lite: false
        images: true
        link_relation_ship: ''
        raw_blocks: false
        block_tags: true
        line_wrap: true
        image_prefix: ''
        link_prefix: ''
        symbol: []
        dimensionless_images: true
      shortcodes:
        cache: 
          enabled: true
          string: ""
        cache_id_string: ""
        opening_tag: "("
        closing_tag: ")"
        closing_tag_marker: "/"
        parameter_value_separator: ":"
        parameter_value_delimiter: "'"
        shortcodes:
          entries:
            enabled: true
            path: "src/flextype/core/Parsers/Shortcodes/EntriesShortcode.php"
            fetch:
              enabled: true
          php:
            enabled: true
            path: "src/flextype/core/Parsers/Shortcodes/PhpShortcode.php"
          raw:
            enabled: true
            path: "src/flextype/core/Parsers/Shortcodes/RawShortcode.php"
          textile:
            enabled: true
            path: "src/flextype/core/Parsers/Shortcodes/TextileShortcode.php"
          markdown:
            enabled: true
            path: "src/flextype/core/Parsers/Shortcodes/MarkdownShortcode.php"
          registry:
            enabled: true
            path: "src/flextype/core/Parsers/Shortcodes/RegistryShortcode.php"
            get:
              enabled: true
          url:
            enabled: true
            path: "src/flextype/core/Parsers/Shortcodes/UrlShortcode.php"
          strings:
            enabled: true
            path: "src/flextype/core/Parsers/Shortcodes/StringsShortcode.php"
          filesystem:
            enabled: true
            path: "src/flextype/core/Parsers/Shortcodes/FilesystemShortcode.php"
            get:
              enabled: true
          i18n:
            enabled: true
            path: "src/flextype/core/Parsers/Shortcodes/I18nShortcode.php"
          if:
            enabled: true
            path: "src/flextype/core/Parsers/Shortcodes/IfShortcode.php"
          when:
            enabled: true
            path: "src/flextype/core/Parsers/Shortcodes/WhenShortcode.php"
          unless:
            enabled: true
            path: "src/flextype/core/Parsers/Shortcodes/UnlessShortcode.php"
          uuid:
            enabled: true
            path: "src/flextype/core/Parsers/Shortcodes/UuidShortcode.php"
          const:
            enabled: true
            path: "src/flextype/core/Parsers/Shortcodes/ConstShortcode.php"
          var:
            enabled: true
            path: "src/flextype/core/Parsers/Shortcodes/VarShortcode.php"
          field:
            enabled: true
            path: "src/flextype/core/Parsers/Shortcodes/FieldShortcode.php"  
          calc:
            enabled: true
            path: "src/flextype/core/Parsers/Shortcodes/CalcShortcode.php"  
          eval:
            enabled: true
            path: "src/flextype/core/Parsers/Shortcodes/EvalShortcode.php" 
          type:
            enabled: true
            path: "src/flextype/core/Parsers/Shortcodes/TypeShortcode.php" 
  • parsers Added ability to override logic for built-in shortcodes.

    Example: If you want to have your custom logic for processing shortcode url just update flextype settings.

    from:

    ...
    parsers:
      shortcodes:
        shortcodes:
          ...
          url:
            enabled: true
            path: "src/flextype/core/Parsers/Shortcodes/UrlShortcode.php"
          ...
        ...
      ...
    ...

    to:

    ...
    parsers:
      shortcodes:
        shortcodes:
          ...
          url:
            enabled: true
            path: "project/plugins/your-custom-plugin/Parsers/Shortcodes/UrlShortcode.php"
          ...
        ...
      ...
    ...
  • routes Added ability to set custom projects routes in /projects/routes/routes.php.

  • shortcodes Added new shortcode (entries) to fetch entry (or entries collection) or specific field.

  • shortcodes Added new shortcode (registry) to fetch data from registry.

  • shortcodes Added new shortcode (filesystem) to work with filesystem.

  • shortcodes Added new shortcode (uuid) to generate uuid.

  • shortcodes Added new shortcode (strings) for strings manipulation.

  • shortcodes Added new shortcode (textile) to parse textile text.

  • shortcodes Added new shortcode (php) to execute php code.

  • shortcodes Added new shortcode (eval) to eval expression.

  • shortcodes Added new shortcode (calc) to calculate values.

  • shortcodes Added new shortcode (type) to set field type.

  • shortcodes Added new shortcode (markdown) to parse markdown text.

  • shortcodes Added new shortcode (getProjectUrl) to get project url.

  • shortcodes Added new shortcode (getBaseUrl) to get base url.

  • shortcodes Added new shortcode (getBasePath) to get base path.

  • shortcodes Added new shortcode (getAbsoluteUrl) to get absolute url.

  • shortcodes Added new shortcode (url) to get url.

  • shortcodes Added new shortcode (urlFor) to get url for route.

  • shortcodes Added new shortcode (getUriString) to get uri string.

  • shortcodes Added new shortcode (filesystem) to do filesytem manipulations.

  • shortcodes Added new shortcode (date) to get date.

  • shortcodes Added new shortcode (tr) to returns translation of a string.

  • shortcodes Added new shortcode (if) to use logical if conditions.

  • shortcodes Added new shortcode (when) to use logical positive if conditions.

  • shortcodes Added new shortcode (unless) to use logical negative if conditions.

  • shortcodes Added new shortcode (var) to get and set entry variables values.

  • shortcodes Added new shortcode (field) to get entry fields values.

  • shortcodes Added new shortcode (const) to get defined costants.

  • shortcodes Added new shortcode (raw) to ignore shortcodes processing.

  • expressions Added a new configurable and extendable expressions engine with a collection of predefined expressions.

  • expressions Added new expression function actions to get actions service.

  • expressions Added new expression function collection to create a new arrayable collection object from the given elements.

  • expressions Added new expression function collectionFromJson to create a new arrayable collection object from the given JSON string.

  • expressions Added new expression function collectionFromString to create a new arrayable collection object from the given string.

  • expressions Added new expression function collectionWithRange to create a new arrayable object with a range of elements.

  • expressions Added new expression function collectionFromQueryString to create a new arrayable object from the given query string.

  • expressions Added new expression function filterCollection to filter collection.

  • expressions Added new expression function const to get defined constants.

  • expressions Added new expression function var to get current entry var.

  • expressions Added new expression function field to get current entry field.

  • expressions Added new expression function csrf to get csrf hidden input.

  • expressions Added new expression function entries to get entries service.

  • expressions Added new expression function filesystem to get filesystem instance.

  • expressions Added new expression function strings to get strings instance.

  • expressions Added new expression function tr to return translation of a string. If no translation exists, the original string will be returned.

  • expressions Added new expression function __ to return translation of a string. If no translation exists, the original string will be returned.

  • expressions Added new expression function max to return the highest value in an array, or the highest value of several specified values.

  • expressions Added new expression function min to return the lowest value in an array, or the lowest value of several specified values.

  • expressions Added new expression function ceil to round a number up to the nearest integer.

  • expressions Added new expression function floor to round a number down to the nearest integer.

  • expressions Added new expression function parsers to get parsers service.

  • expressions Added new expression function serializers to get serializers service.

  • expressions Added new expression function registry to get registry service.

  • expressions Added new expression function slugify to get slugify service.

  • expressions Added new expression function date to get date.

  • expressions Added new expression function url to get the url.

  • expressions Added new expression function urlFor to get the url for a named route.

  • expressions Added new expression function fullUrlFor to get the full url for a named route.

  • expressions Added new expression function isCurrentUrl to determine is current url equal to route name.

  • expressions Added new expression function getCurrentUrl to get current path on given Uri.

  • expressions Added new expression function getBasePath to get the base path.

  • expressions Added new expression function getBaseUrl to get the base url.

  • expressions Added new expression function getAbsoluteUrl to get the absolute url.

  • expressions Added new expression function getProjectUrl to get the project url.

  • expressions Added new expression function getUriString to get the uri string.

  • expressions Added new expression function redirect to create redirect.

  • cache Added new cache driver Phparray to store cache data in raw php arrays files.

  • cache Added router cache.

  • cache Added ability to set custom cache ID string for entries, parsers and serializers.

  • tokens Added new Tokens API.

  • helpers All core helpers are located in the src/flextype/helpers/.

  • helpers Added helper function app to get Flextype Application instance.

  • helpers Added helper function container to get Flextype Application Container instance.

  • helpers Added helper function emitter to get Flextype Emitter Service.

  • helpers Added helper function cache to get Flextype Cache Service.

  • helpers Added helper function entries to get Flextype Entries Service.

  • helpers Added helper function parsers to get Flextype Parsers Service.

  • helpers Added helper function serializers to get Flextype Serializers Service.

  • helpers Added helper function logger to get Flextype Logger Service.

  • helpers Added helper function session to get Flextype Session Service.

  • helpers Added helper function csrf to get Flextype CSRF Service.

  • helpers Added helper function plugins to get Flextype Plugins Service.

  • helpers Added helper function console to get Flextype Console Service.

  • helpers Added helper function imageFile to create a new image instance for image file.

  • helpers Added helper function imageCanvas to create a new image canvas instance.

  • helpers Added helper function generateToken to generate unique token.

  • helpers Added helper function generateTokenHash to generate unique token hash.

  • helpers Added helper function verifyTokenHash to validate token hash.

  • helpers Added helper function url to get url.

  • helpers Added helper function urlFor to get url for a named route.

  • helpers Added helper function fullUrlFor to get full url for a named route.

  • helpers Added helper function isCurrentUrl to determine is current url equal to route name.

  • helpers Added helper function getCurrentUrl to get current path on given Uri.

  • helpers Added helper function getBasePath to get base path.

  • helpers Added helper function setBasePath to set base path.

  • helpers Added helper function redirect to create redirect.

  • helpers Added helper function upload to upload files and process uloaded images.

  • uploder Added Configurable Sirius Uploader for file upload.

    # Upload
    upload:
    
      # Uploads directory
      directory: '/uploads'
    
      # Overwrite existing files.
      overwrite: true
    
      # Auto-confirm uploads.
      autoconfirm: false
    
      # Prefixing uploads.
      prefix: ''
    
      # Validation options
      validation:
    
        # Allowed file extensions.
        allowed_file_extensions: ['gif', 'jpg', 'jpeg', 'png', 'ico', 'webm', 'svg']
    
        # Maximum file size.
        max_file_size: '24M'
    
        # Image validation options
        image:
        
          # Image maxiumum and minimum width
          width:
            max: 4920
            min: 100
    
          # Image maxiumum and minimum height
          height: 
            max: 3264
            min: 100
        
          # Image ratio
          #ratio:
          #  The option can be a number (eg: 1.3) or a ratio-like string (eg: 4:3, 16:9).
          #  size: 1.3
    
          #  The option error_margin specifies how much the image is allowed to 
          #  deviate from the target ratio. Default value is 0.
          #  error_margin: 0
    
      # Process uploaded files
      process:
    
        # Images process settings
        image:
    
          # Image quality
          quality: 70
  • macros All core macros are located in the src/flextype/macros/.

  • macros Added onlyFromCollection and exceptFromCollection macros for Arrays (#553)

  • actions Added new Actions API (#549)

    Usage

    Example 1
    // Set new action entries.create
    actions()->set('entries.create', function($id, $data) {
      return entries()->create($id, $data);
    });
    
    // Get action entries.create
    actions()->get('entries.create')('hello-world', []);
    Example 2
    // Set new action entries.update
    actions()->set('entries.update', function($id, $data) {
      if (entries()->update($id, $data)) {
        logger()->info("Content {$id} successfully updated");
        cache()->delete($id);
      } else {
        logger()->error("Content {$id} was not updated");
      }
    });
    
    // Get action entries.update
    actions()->get('entries.update')('hello-world', []);
    Example 3
    // Set new action entries.create
    actions()->set('entries.create', function($id, $data) {
      if(registry()->get('database') == 'MySQL') {
        // ... create new entry in the MySQL database.
      } else {
        return entries()->create($id, $data);
      }
    });
    
    // Get action entries.create
    actions()->get('entries.create')('blog/post-1', []);
    actions()->get('entries.create')('blog/post-2', []);
    actions()->get('entries.create')('blog/post-3', []);

    The Flextype Actions API provides new capabilities to extend the Flextype core by registering and reusing useful code snippets from global actions namespace.

Bug Fixes

  • parsers Fixed issue with double cashing.

  • htaccess Security fixes for .htaccess

  • entries Fixed issue when entries collection fetch returns empty result.

  • plugins Fixed Plugins API translation loading process.

  • plugins Fixed Plugins API initialization (#551)

  • plugins Fixed Plugins API dependency initialization.

  • plugins Fixed Plugins API issue with non valid plugins (#551)

  • plugins Fixed Plugins API loader issue with disabled plugins.

BREAKING CHANGES

  • media Media and Glide functionality removed from the flextype core due to security and perfomance reasons. Recomended to use imagekit or imgix instead.

  • core Use new constant FLEXTYPE_PATH_PROJECT instead of PATH['project'] and FLEXTYPE_PATH_TMP instead of PATH['tmp'].

  • shortcodes New default shortcodes syntax and signatures changes for all shortocodes.

      opening_tag: "("
      closing_tag: ")"
      closing_tag_marker: "/"
      parameter_value_separator: ":"
      parameter_value_delimiter: '"'
  • helpers Use new helpers functions to access Flextype Services.

    • use entries() instead of flextype('entries')
    • use session() instead of flextype('session')
    • use cache() instead of flextype('cache')
    • use app() instead of flextype()
    • use container() instead of flextype('container_name_here')
    • use parsers() instead of flextype('parsers')
    • use serializers() instead of flextype('serializers')
    • use plugins() instead of flextype('plugins')
    • use emitter() instead of flextype('emitter')
    • use logger() instead of flextype('logger')
    • use registry() instead of flextype('registry')
  • helpers Use helper function app to access Flextype Application instance instead of old helper function flextype().

  • helpers Use helper function container to access Flextype Application container instead of old helper function flextype() with container name argument.

    • use container()->get('entries') instead of flextype('entries')
    • use container()->set('entries', new Entries()) instead of flextype()['entries'] = new Entries()
  • helpers Use helper function filterCollection instead of old filter.

  • tokens Project tokens moved from project/tokens to project/entries/tokens.

  • entries Changes for etnries memory storage.

    • use entries()->registry()->get() instead of flextype('entries')->storage()->get()
    • use entries()->registry()->set() instead of flextype('entries')->storage()->set()
    • use entries()->registry()->has() instead of flextype('entries')->storage()->has()
    • use entries()->registry()->delete() instead of flextype('entries')->storage()->delete()

    note: all method from Glowy PHP Arrays are available for Arrays Storage Object manipulations docs: https://github.com/glowyphp/arrays

Refactoring

  • core General code refactoring and improvements.

  • tests All unit tests were rewritten.