Cherrycake
ExamplesGithub
version 2.x alpha
version 2.x alpha
  • Introduction
  • Status
  • Changelog
  • Migration
  • Architecture
    • Basics
    • Modules
    • Classes
    • Lifecycle
      • Deep lifecycle
    • Performance
    • Security
    • Patterns
      • Files structure
    • Items
    • Server requirements
  • Guide
    • Getting started
      • Skeleton start
      • Docker start
    • Modules guide
    • Classes guide
    • Actions guide
      • Complex actions
      • Variable path components
      • Accept GET or POST parameters
      • Getting the URL of an action
      • Cached actions
      • Brute force attacks
    • Patterns guide
      • Passing variables to a pattern
      • Nested patterns
      • Cached patterns
    • Cache guide
      • Time To Live
      • Using cache
      • Lists
      • Queues
      • Pools
    • Database guide
      • Basic queries
      • Prepared queries
      • Cached queries
      • Cache key naming
      • Removing queries from cache
    • Items guide
      • Item cache
      • Item lists
      • Items custom filters
      • Items custom ordering
      • Mixing filters and ordering
      • Items with relationships
      • Items cache
    • HtmlDocument guide
    • Css and Javascript guide
      • Modules injecting CSS and JavaScript
    • Session guide
    • Login guide
      • Creating a complete login workflow
    • Locale guide
      • Multilingual texts
      • Domain based site localization
    • Log guide
      • Loading Log events from the database
    • Stats guide
      • Stats events with additional dimensions
      • Loading Stats events from the database
    • Janitor guide
      • Janitor tasks configuration files
    • Command line interface
    • Debugging
  • Reference
    • Core modules
      • Actions
        • Actions methods
      • Browser
      • Cache
        • Cache methods
      • Css
        • Css methods
      • Database
      • Email
      • Errors
      • HtmlDocument
        • HtmlDocument methods
      • ItemAdmin
      • Janitor
        • Janitor methods
      • Javascript
        • Javascript methods
      • Locale
        • Locale methods
      • Log
        • Log methods
      • Login
        • Login methods
      • Output
        • Output methods
      • Patterns
        • Patterns methods
      • Security
        • Security methods
      • Session
        • Session methods
      • Stats
        • Stats methods
      • SystemLog
      • TableAdmin
      • Translation
      • Validate
    • Core classes
      • Action
        • Action methods
        • Action properties
      • AjaxResponseJson
      • BasicObject
        • BasicObject methods
      • CacheProvider
        • CacheProvider methods
      • Color
      • DatabaseProvider
        • DatabaseProvider methods
      • DatabaseResult
        • DatabaseResult methods
        • DatabaseResult properties
      • DatabaseRow
      • Engine
        • Engine methods
        • Engine properties
      • Gradient
      • Item
        • Item methods
        • Item properties
      • Items
        • Items methods
        • Items properties
      • Image
      • JanitorTask
        • JanitorTask methods
        • JanitorTask properties
      • LogEvent
        • LogEvent methods
        • LogEvent Properties
      • LogEvents
        • LogEvents methods
      • Module
        • Module methods
        • Module properties
      • Response
      • Request
        • Request methods
      • RequestParameter
        • RequestParameter methods
      • RequestPathComponent
        • RequestPathComponent methods
      • Result
      • StatsEvent
        • StatsEvent properties
      • StatsEvents
        • StatsEvents methods
      • SystemLogEvent
        • SystemLogEvent methods
        • SystemLogEvent properties
      • SystemLogEvents
        • SystemLogEvents methods
  • Code conventions
  • License
  • Extras
Powered by GitBook
On this page
  • Version 2.0.0b
  • Changed
  • Version 1.0.0b
  • Changed
  • Removed

Was this helpful?

Changelog

PreviousStatusNextMigration

Last updated 3 years ago

Was this helpful?

Cherrycake adheres to , meaning version numbers match the <Major>.<Minor>.<Patch> syntax:

  • Major version numbers change when there are changes that are incompatible with earlier major versions. For example: A Cherrycake application using major version 0 will need to be heavily modified in order to work with version 1.

  • Minor version numbers change when there are new functionalities or improvements that are compatible with earlier minor versions. For example: A Cherrycake application using version 0.3.x will work without much changes or no changes at all when upgraded to Cherrycake version 0.4.x.

  • Path version numbers change when there are updates that solve bugs in a completely backwards compatibility fashion. For example: A Cherrycake application using version 0.3.4 will work without any changes at all when upgraded to 0.3.5.

Version 2.0.0b

A major upgrade to take advantage of PHP 8 improvements like named arguments, and constructor properties promotion, makes the code easier to read and maintain, and provides self documenting benefits.

This version also replaces the multilingual text methodology in spite of a newer approach based on auto-generated translation TOML files that makes it a lot easier to create multilingual applications.

This version breaks compatibility with older versions, see the section for a guide on how to migrate your existing Cherrycake version 1.x application to version 2.x.

Changed

  • Upgrade to PHP 8.

  • Multi-language texts are managed by the easier to use new module instead of the module. The Locale module is still used for all other localization needs.

Version 1.0.0b

A major upgrade released on 2021-05-29, mainly based around leveraging class discovery to , and better organizing the code into namespaces and subnamespaces. UI Components are entirely removed after being considered as an obsolete UI architecture, and re-formulating Cherrycake's scope to not impose any UI-specific architecture. See the section for a guide on how to migrate your existing Cherrycake version 0.x application to version 1.x.

Changed

  • Composer-based autoloading system, a standard class and module autloading mechanism that simplifies overall structure for Cherrycake apps.

  • Core modules are now stored in /src//.php

  • Core classes are now stored in /src/.php

  • App module are now stored in /src//.php by default

  • App classes are now stored in /src/.php by default

  • Modules are now set in their own subnamespace inside the Cherrycake namespace. For example, the Actions module now resides in the \Cherrycake\Actions namespace and the Output module now resides in the \Cherrycake\Output namespace.

  • Because modules now reside in their own subnamespace, classes related to specific modules also reside now in the matching subnamespace. For example, the Action, ActionHtml, Request, RequestPathComponent and alike all now reside in the \Cherrycake\Actions namespace.

  • Class and module files must now have .php extension instead of .class.php

  • Module configuration files are now autodetected, so isConfigFile property for modules is no longer needed.

  • Janitor tasks configuration files are now autodetected, so isConfigFile property is no longer needed.

  • Global constants are declared in /constants.php.

  • Autoloading of classes is now handled via composer, so you need to add this to your composer.json file:

    "autoload": {
      "psr-4": {
          "CherrycakeApp\\": "src/"
      }
    }

Removed

UIComponents are no longer part of Cherrycake because they were based on an obsolete web design standard, in favor of modern web UI techniques.

Semantic Versioning
Translation
Locale
composer
Migration
Migration