What’s new in ❊ Perpl ❊

    ❊ Perpl ❊ is an updated Version of Propel2. It’s almost completely backwards compatible to Propel2 yet has a number of improvements, bug fixes and new features. We will update the information below over time.

    Features

    Some of the new and improved features below:

    • Runs successfully tested with PHP 8.5 and Symfony 8 components
    • Better typing & improved type-preserving in general
    • Performance improvements, e.g. drastically speeding up queries in PR #24
    • Native ENUM and SET support for MySQL and PostgreSQL
    • Improved CLI experience and new commands
    • Better typing in generated classes with fully typed column fields since PR #83. This also affects the generated phpDoc blocks removing the typehint from the docblock if applicable. This behavior can be overridden by setting the newly introduced config key generator.objectModel.typeColumnDataFields to false
    • Docker test environment avalaible under https://github.com/perplorm/perp-test-docker, see also our Announcement info
    • Code cleanup for better readability and maintainabilty
    • Enhanced filter system for easier performing complex queries in PR #28, PR #33 and PR #70
    • New and improved behaviors e.g. synced_table (PR #10), config_store (PR #13) and output_group (PR #9)
    • Added option for importing multiple user-contributed behaviors from the same (user) repo (PR)
    • Underscore methods like ->_if() and ->_endif() no more silently produce wrong queries when the underscore is forgotten but throw an exception since PR #110
    • Disabling virtual file system in tests is now possible since PR #88
    • Fixed wrong SQL generated in queries while filtering array columns with Criteria::CONTAINS_ALL, Criteria::CONTAINS_SOME or Criteria::CONTAINS_NONE, see PR #91
    • Fixed failed CI runs with some Symfony versions in PR #87, for further information see also this Symfony CVE
    • Deprecation of some old internal methods in PR #28

    For the (few) BC-breaking changes and more detailed information on new and updated features, please visit https://github.com/perplorm/perpl

    Difference to Propel2

    See all changes between ❊ Perpl ❊ and Propel2.