Low code , Zero Configuration ORM that creates models, config, database and tables on the fly.

Overview

🚀 ARCA ORM

GitHub Workflow Status Scrutinizer code quality (GitHub/Bitbucket) Packagist Version (including pre-releases) GitHub License

🔥 Low code , Zero Configuration ORM that creates models, config, database and tables on the fly. 🔥
🇮🇳 Made in India 🇮🇳

arca-orm

Complete documentation can be found here



🤔 Why use Arca Orm ?

  • Automatically creates tables and columns as you go
  • No configuration, just fire and forget
  • Save loads of time while working on database
  • Built upon stable foundation of Doctrine Dbal and extensively tested
  • Thanks to loophp Arca comes with Lazy collection and tons of helper collection functions
  • Supports lots database platforms , you can see the complete list here
  • Supports concurrent queries and connection pooling using swoole. Check the adapter at https://github.com/scrawler-labs/swoole-postgresql-doctrine

Requirements

  • PHP 8.1 or greater
  • PHP PDO or other supported database adapter
  • Mysql, MariaDB, Sqlite or any other supported database. check the list here

💻 Installation

You can install Arca ORM via Composer. If you don't have composer installed , you can download composer from here

composer require scrawler/arca

🏁 QuickStart

Setup

   <?php
    include './vendor/autoload.php'
    
    $connectionParams = array(
        'dbname' => 'YOUR_DB_NAME',
        'user' => 'YOUR_DB_USER',
        'password' => 'YOUR_DB_PASSWORD',
        'host' => 'YOUR_DB_HOST',
        'driver' => 'pdo_mysql', //You can use other supported driver this is the most basic mysql driver
    );

    $db =  new \Scrawler\Arca\Database($connectionParams);

For complete list of driver check here

✏️ CRUD

    // Create new record
    // The below code will automatically create user table and store the record

    $user = $db->create('user');
    $user->name = "Pranja Pandey";
    $user->age = 24
    $user->gender = "male"
    $user->save()
    
    // Get record with id 1
    
    $user = $db->get('user',1);
    
    //Get all records
    
    $users = $db->get('user');
    
    // Update a record
     $user = $db->get('user',1);
     $user->name = "Mr Pranjal";
     $user->save();
     
    // Delete a record
     $user = $db->get('user',1);
     $user->delete();

🔎 Finding data with query

  // Using where clause
  $users = $db->find('user')
              ->where('name = "Pranjal Pandey"')
              ->get();
              
  foreach ($users as $user){
  // Some logic here 
  }
  
  // Get only single record
  $users = $db->find('user')
             ->where('name = "Pranjal Pandey"')
             ->first();  

  // Using limit in query
  $users = $db->find('user')
              ->setFirstResult(10)
              ->setMaxResults(20);
              ->get()

For complete documentation visit the wiki

👏 Supporters

If you have reached here consider giving a star to help this project ❤️ Stargazers repo roster for @scrawler-labs/arca-orm

Roadmap

Here is list of few things that i would like to add in upcoming release

  • Models should be extendible with custom models
  • Validations for custom models
  • Automatically create migrations when table is updated or created
  • Support eager loading for relations
  • Better documentaions

👍 Similar projects and inspiration

📄 License

Arca ORM is created by Pranjal Pandey and released under the Apache 2.0 License.

Comments
  • About the use of loophp/collection

    About the use of loophp/collection

    Hey there,

    I'm glad and honoured that you're using loophp/collection, but I think you should not do this. By "this", I mean copying the content of the Collection class into your namespace.

    When doing that, you basically discard all the upstream fixes and features that might comes in loophp/collection in the future.

    The best option is to directly rely on the Collection class and its interface by using Composition pattern.

    I quickly drafted something for you here so you can get some inspirations: https://gist.github.com/drupol/c8f97902184decc7fbf004120fe89fc0

    Note that you are not "forced" to implements ALL the methods of the Collection interface, you could have your own interface and just implements the minimum you need and just using loophp/collection internally without never exposing everything.

    Let me know if you need further help.

    Thx

    opened by drupol 3
  • chore(deps): update dependency doctrine/collections to v2.0.1

    chore(deps): update dependency doctrine/collections to v2.0.1

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | doctrine/collections (source) | require-dev | patch | 2.0.0 -> 2.0.1 |


    Release Notes

    doctrine/collections

    v2.0.1

    Compare Source

    Release Notes for 2.0.1

    2.0.x bugfix release (patch)

    2.0.1
    • Total issues resolved: 0
    • Total pull requests resolved: 2
    • Total contributors: 2
    Bug,Static Analysis
    Documentation

    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • chore(deps): update dependency doctrine/collections to v2

    chore(deps): update dependency doctrine/collections to v2

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | doctrine/collections (source) | require-dev | major | 1.8.0 -> 2.0.0 |


    Release Notes

    doctrine/collections

    v2.0.0

    Compare Source

    Release Notes for 2.0.0
    2.0.0
    • Total pull requests resolved: 12
    • Total contributors: 9
    Types
    Static Analysis
    Improvement
    Internal
    Bugfixes
    Documentation

    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • chore(deps): update actions/checkout action to v3

    chore(deps): update actions/checkout action to v3

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | actions/checkout | action | major | v2 -> v3 |


    Release Notes

    actions/checkout

    v3

    Compare Source


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • chore(deps): update dependency doctrine/collections to v1.8.0

    chore(deps): update dependency doctrine/collections to v1.8.0

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | doctrine/collections (source) | require-dev | minor | 1.6.8 -> 1.8.0 |


    Release Notes

    doctrine/collections

    v1.8.0

    Compare Source

    Release Notes for 1.8.0

    Feature release (minor)

    1.8.0
    • Total issues resolved: 0
    • Total pull requests resolved: 1
    • Total contributors: 1
    Static Analysis

    v1.7.3

    Compare Source

    Release Notes for 1.7.3
    1.7.3
    • Total issues resolved: 0
    • Total pull requests resolved: 1
    • Total contributors: 1
    Bug

    v1.7.2

    Compare Source

    Release Notes for 1.7.2

    1.7.x bugfix release (patch)

    1.7.2
    • Total issues resolved: 0
    • Total pull requests resolved: 2
    • Total contributors: 1
    Improvement
    Static Analysis

    v1.7.1

    Compare Source

    Release Notes for 1.7.1

    1.7.x bugfix release (patch)

    1.7.1
    • Total issues resolved: 0
    • Total pull requests resolved: 3
    • Total contributors: 2
    Documentation
    Static Analysis

    v1.7.0

    Compare Source

    Release Notes for 1.7.0

    Feature release (minor)

    1.7.0
    • Total issues resolved: 0
    • Total pull requests resolved: 6
    • Total contributors: 6
    Deprecation
    Static Analysis
    Enhancement

    v1.6.9

    Compare Source

    Release Notes for 1.6.9

    1.6.x bugfix release (patch)

    1.6.9
    • Total issues resolved: 0
    • Total pull requests resolved: 8
    • Total contributors: 4
    Static Analysis
    Internal

    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [x] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • chore(deps): update dependency loophp/phpunit-iterable-assertions to v1.0.3

    chore(deps): update dependency loophp/phpunit-iterable-assertions to v1.0.3

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | loophp/phpunit-iterable-assertions | require-dev | patch | 1.0.1 -> 1.0.3 |


    Release Notes

    loophp/phpunit-iterable-assertions

    v1.0.3

    Compare Source

    Commits
    • feat: Implements additionalFailureDescription with relevant information. 58e2c5a
    • docs: Fix README link. ef26266

    v1.0.2

    Compare Source

    Merged
    • chore(deps): Bump shivammathur/setup-php from 2.18.0 to 2.18.1 #7
    • chore(deps): Bump actions/stale from 4 to 5 #6
    • chore(deps): Bump shivammathur/setup-php from 2.17.1 to 2.18.0 #5
    • chore(deps): Bump actions/cache from 2.1.7 to 3 #4
    • chore(deps): Bump shivammathur/setup-php from 2.17.0 to 2.17.1 #3
    • chore(deps): Bump actions/checkout from 2.4.0 to 3 #2
    • chore(deps): Bump shivammathur/setup-php from 2.16.0 to 2.17.0 #1
    Commits
    • docs: Update CHANGELOG. d7b375b
    • chore: Require loophp/iterators 2 now. 3c60587
    • chore: Summer cleanup and modernizations. c9525c1
    • chore: Update Infection configuration file. 4ad0942
    • chore: Update composer.json. 63a3328
    • chore: Update license. 23ef768

    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [x] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • chore(deps): pin dependency phpstan/phpstan to v1.7.3

    chore(deps): pin dependency phpstan/phpstan to v1.7.3

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | phpstan/phpstan | require-dev | pin | ^1.6 -> 1.7.3 |

    Add the preset :preserveSemverRanges to your config if you don't want to pin your dependencies.


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • chore(deps): pin dependencies

    chore(deps): pin dependencies

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | doctrine/collections (source) | require-dev | pin | ^1.6 -> 1.6.8 | | loophp/phpunit-iterable-assertions | require-dev | pin | ^1.0 -> 1.0.1 | | pestphp/pest | require-dev | pin | ^1.21 -> 1.21.3 | | pestphp/pest-plugin-faker | require-dev | pin | ^1.0 -> 1.0.0 | | phpmd/phpmd (source) | require-dev | pin | ^2.12 -> 2.12.0 | | squizlabs/php_codesniffer (source) | require-dev | pin | ^3.6 -> 3.6.2 |

    Add the preset :preserveSemverRanges to your config if you don't want to pin your dependencies.


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

    👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • Configure Renovate

    Configure Renovate

    Mend Renovate

    Welcome to Renovate! This is an onboarding PR to help you understand and configure settings before regular Pull Requests begin.

    🚦 To activate Renovate, merge this Pull Request. To disable Renovate, simply close this Pull Request unmerged.


    Detected Package Files

    • composer.json (composer)
    • .github/workflows/tests.yml (github-actions)

    Configuration

    🔡 Renovate has detected a custom config for this PR. Feel free to ask for help if you have any doubts and would like it reviewed.

    Important: Now that this branch is edited, Renovate can't rebase it from the base branch any more. If you make changes to the base branch that could impact this onboarding PR, please merge them manually.

    What to Expect

    With your current configuration, Renovate will create 8 Pull Requests:

    chore(deps): pin dependencies
    chore(deps): pin dependency phpstan/phpstan to v1.7.3
    • Schedule: ["at any time"]
    • Branch name: renovate/phpstan-packages
    • Merge into: main
    • Pin phpstan/phpstan to 1.7.3
    chore(deps): update dependency loophp/phpunit-iterable-assertions to v1.0.3
    chore(deps): update dependency doctrine/collections to v1.7.3
    • Schedule: ["at any time"]
    • Branch name: renovate/doctrine-collections-1.x
    • Merge into: main
    • Upgrade doctrine/collections to 1.7.3
    chore(deps): update dependency pestphp/pest to v1.22.1
    • Schedule: ["at any time"]
    • Branch name: renovate/pestphp-pest-1.x
    • Merge into: main
    • Upgrade pestphp/pest to 1.22.1
    chore(deps): update dependency phpmd/phpmd to v2.13.0
    • Schedule: ["at any time"]
    • Branch name: renovate/phpmd-phpmd-2.x
    • Merge into: main
    • Upgrade phpmd/phpmd to 2.13.0
    chore(deps): update dependency squizlabs/php_codesniffer to v3.7.1
    • Schedule: ["at any time"]
    • Branch name: renovate/squizlabs-php_codesniffer-3.x
    • Merge into: main
    • Upgrade squizlabs/php_codesniffer to 3.7.1
    chore(deps): update actions/checkout action to v3
    • Schedule: ["at any time"]
    • Branch name: renovate/actions-checkout-3.x
    • Merge into: main
    • Upgrade actions/checkout to v3

    🚸 Branch creation will be limited to maximum 2 per hour, so it doesn't swamp any CI resources or spam the project. See docs for prhourlylimit for details.


    ❓ Got questions? Check out Renovate's Docs, particularly the Getting Started section. If you need any further assistance then you can also request help here.


    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • fix(deps): update dependency loophp/collection to v7

    fix(deps): update dependency loophp/collection to v7

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | loophp/collection | require | major | ^6.0 -> ^7.0 |


    Release Notes

    loophp/collection

    v7.0.0

    Compare Source

    Merged
    • Psalm 5 upgrade #283
    • add AbstractCollection abstract class #270
    • chore(deps): update dependency sphinx_rtd_theme to v0.5.2 #275
    • chore(deps): update actions/stale action to v6 #276
    • chore(deps): add renovate.json #274
    • refactor: unfold constructor is not variadic anymore #269
    • Documentation: refactoring #266
    • chore(deps): Bump cachix/install-nix-action from 17 to 18 #267
    • Breaking change: refactor: Refactor Reduce operation. #259
    • Add action on README file. #263
    • chore(deps): Bump shivammathur/setup-php from 2.20.1 to 2.21.1 #261
    • chore(deps): Bump shivammathur/setup-php from 2.19.0 to 2.20.1 #258
    • New Operations: Compare, Max, Min #255
    • chore(deps): Bump shivammathur/setup-php from 2.18.1 to 2.19.0 #253
    • ci: Use pcov for coverage. #252
    • chore(deps-dev): Update psr/cache requirement from ^1.0 to ^1.0 || ^2.0 #251
    • chore(deps): Bump shivammathur/setup-php from 2.18.0 to 2.18.1 #250
    • Update Scrutinizer configuration. #249
    • chore(deps): Bump actions/stale from 4 to 5 #248
    • feat: Add Averages operation. #238
    • Simplify every operation #247
    • Get rid of phpspec/prophecy-phpunit. #246
    • Breaking change: fix: Update scanLeft1 operation. #245
    • chore(deps): Bump shivammathur/setup-php from 2.17.1 to 2.18.0 #244
    • refactor: Update every operation. #242
    • chore(deps): Bump actions/cache from 2.1.7 to 3 #243
    • misc: Update CallbackArrayReducer. #241
    • chore(deps): Bump actions/checkout from 2.4.0 to 3 #240
    • chore(deps): Bump shivammathur/setup-php from 2.17.0 to 2.17.1 #239
    • chore(deps): Bump shivammathur/setup-php from 2.16.0 to 2.17.0 #235
    • Replace Iterator with iterable almost everywhere. #233
    • refactor: Use new keyword on some operations. #231
    • refactor: Use StringIteratorAggregate. #234
    • Tests: Switch to PHPUnit #227
    • Refactor: Replace RandomIterator #230
    • Simplify operations that needs more than one instance of the Generator - using IteratorAggregate. #229
    • Use loophp/iterators #228
    Fixed
    • tests: Add new tests. #264
    Commits
    • Breaking change: refactor: Tails operation, performance improvements d71b2ef
    • Breaking change: refactor: Update Unpack operation. 34c36da
    • chore: update composer.json and fix auto-changelog command 6949831
    • chore: update composer.json 1ba6085
    • remove obsolete annotation 908d3e5
    • refactor: Tails operation ea4b92c
    • refactor: Tails operation, performance improvements 1c28be3
    • refactor: Window operation: minor performance improvement 486567a
    • refactor: upgrade tests for PHP 8 25067cb
    • refactor: upgrade docs for PHP 8 1d9c134
    • refactor: upgrade src for PHP 8 4a4a60b
    • cs: autofix cs 4dc36fe
    • fix: update IfThenElse operation eb78132
    • sa: update typing information for PHP 8 8ee1134
    • update SA annotations 7154f09
    • update SA annotations 0e8b0e5
    • disable phpcs statement d7bba3a
    • update PHPStan baseline 808578a
    • reorder Collection interface use statements 6bbb829
    • fix: update span and partition operations 31d4b31
    • fix: remove static constructors 747e1f8
    • docs: fix unfold signature d11addd
    • sa: update PSalm baseline f78dc32
    • Revert "sa: fix Wrapable interface" 1cf67d1
    • sa: fix Wrapable interface 3866fe5
    • sa: fix template-extends annotations a3f8b45
    • cs: reduce the amount of use statements 19eb14e
    • cs: reduce the amount of use statements dce7e48
    • Autofix code style. cd4a6f6
    • direnv: update .envrc b402706
    • fix: update constructors c49e62b
    • fix: Update GroupBy static analysis annotations. d74d4f8
    • fix: update various operations static analysis annotations. 473f105
    • fix: update various operations static analysis annotations. c1998e9
    • fix: update various operations static analysis annotations. 2fb44cf
    • fix: Since and Until operation - fix sa bde565c
    • fix: Compare operation - fix sa 06729d7
    • fix: fix operator sign ea90e23
    • fix: remove optional parameters 6a27551
    • fix: update interfaces 0dae4c2
    • fix missing parameter 69818b3
    • docs: Update pipe documentation ec10eeb
    • cs: get rid of obsolete phpcs annotations a385a6a
    • ci: update scrutinizer configuration dae9eb6
    • ci: update scrutinizer configuration ca6f602
    • ci: update scrutinizer configuration 2d09f65
    • ci: update scrutinizer configuration bac7f9b
    • ci: update scrutinizer configuration 376bd66
    • ci: update trigger paths 0f2db5b
    • ci: update scrutinizer configuration 8d12965
    • ci: fix indentation 95e60b5
    • ci: update trigger paths e78546e
    • ci: fix scrutinizer/ocular 583668f
    • Autofix code style. 079a7b9
    • docs: Update changes a6653b8
    • scanLeft and scanRight has been updated and now need two arguments instead of one. 9355dea
    • tests: fix tests 1233c49
    • sa: update SA info of various operations. 25ed050
    • sa: fixes 6c5e44c
    • tests: update diff SA tests ece6067
    • tests: update diff SA tests 0af490e
    • fix typos with codespell 28e7663
    • fix Collatz example 6ec0563
    • chore: remove custom nix files 4197638
    • cs: autofix code style e546136
    • refactor: update Pair operation eed0c7e
    • chore: prettify codebase 2a0ed02
    • refactor: align Duplicate operation with Distinct de09c01
    • docs: do not create ArrayIterator. 806fa18
    • refactor: prevent the creation of an extra variable 31f87a8
    • docs: do not create ArrayIterator. 2e50e49
    • refactor: remove files header aacb5e9
    • Revert "chore: Ignore Nix files" 98fe09a
    • docs: Add phpsandbox badge and link. 9f02c7c
    • docs: Fix minor things. 679b353
    • chore: Update flake.nix file. 8ddd35d
    • chore: Ignore Nix files d34980d
    • ci: Add workflow to build a PDF of the documentation for each tag. 7810400
    • chore: Add composer command to run the documentation server. 15dc6bd
    • docs: Update documentation. a783394
    • chore: Add Nix flakes file for documentation building. 3f90ed6
    • chore: Remove docker stuff. 88e92b6
    • cs: Upgrade to loophp/iterators^2. 1343255
    • refactor: Upgrade to loophp/iterators^2. 691abd4
    • cs: Autofix code style. 6f1eda3
    • chore: Update baseline. 4463a37
    • chore: Update scrutinizer configuration. fc3a790
    • ci: Add prettier in required status checks. c8687cf
    • chore: Prettify codebase. 9551288
    • chore: Update .gitattributes. 411f937
    • ci: Update required status checks. 5ab0f1f
    • ci: Fix step name. a65faf4
    • prettier: Autofix. ff03ea6
    • ci: Fix branch name. bbfb1c8
    • ci: Enable prettier on the whole repo. 25d1c25
    • ci: Simplify things. 1ef0edc
    • sa: Fix distinct tests. 6147f9c
    • ci: Include tests src directories. ff8fea0
    • sa: Fix distinct tests. edc521f
    • chore: Update test workflow. 7f43d4b
    • chore: Update test workflow. 738cc6e
    • Update Filter and Reject operations. 186c003
    • Minor cosmetic changes. 066504a
    • Autofix code style. 25b2a69
    • refactor: Minor optimization in Pack operation. 32462ad
    • fix: Equals operation, fix typing information. eff8102
    • fix: Same operation, fix typing information. 5a91d8a
    • fix: Reduction operation, fix typing information. 466232b
    • Use ReductionIterableAggregate. 0d4d7a2
    • Use ReductionIterableAggregate. a168b6d
    • Autofix code-style. 3b49c3a
    • Revert "Revert last 3 commits." 16e3c7a
    • Update typing information. 3017e2a
    • tests: Disable problematic test on PHP < 8. c148d16
    • Revert last 3 commits. 31cdc99
    • Use ConcatIterableAggregate. d90986d
    • Use MapIterableAggregate. ea45575
    • Use FilterIterableAggregate. 84b42c2
    • fix: Performance improvements using SimpleCachingIteratorAggregate. 51e7d6f
    • fix: Remove @psalm-suppress annotation. ab5f9f0
    • docs: Add more examples snippets. a1873a7
    • Revert "ci: Disable XDebug." a6b4791
    • ci: Disable XDebug. 447bd03
    • SA: Minor changes fix. 0e30363
    • SA: Minor changes. c835e1c
    • SA: Fix a couple of operations. 679834b
    • SA: PHPStan 1.6.0 upgrade. 843c9c4
    • refactor: Update Reverse operation. 545bd60
    • fix: Remove ext-xdebug from composer.json for now. 6209f4b
    • fix: Minor static analysis fixes. 2ce3510
    • refactor: Minor optimizations here and there. f08d88e
    • refactor: Minor optimizations here and there. e9c4460
    • refactor: Minor optimizations. 5987ab7
    • refactor: random operation: use RandomIterableAggregate. 78e7a6f
    • tests: Add missing test. 8afedbf
    • tests: Add missing test. 7a05041
    • cs: Autofix code style. 0d2595e
    • misc: Further optimizations with Every operations. f523cdb
    • misc: Further optimizations with Every operations. de1edb3
    • tests: Remove duplicated tests. 2a0c84d
    • cs: Minor changes. f0612e7
    • refactor: Optimize Head operation. 33e2f15
    • cs: Autofix code style. 6cc2a05
    • fix: SA - Update Unwindow operation. c9562fd
    • refactor: Simplify and optimize Transpose. 38cca46
    • refactor: Use new keyword everywhere. aacf7df
    • refactor: Use new keyword everywhere. a6db56e
    • refactor: Minor SA annotations update. 35bf8c2
    • refactor: Use new keyword everywhere. 8a3a05a
    • refactor: Remove useless intermediary variable. 79ebed1
    • refactor: Drop rely on Limit now. 16e220a
    • refactor: Remove useless intermediary variable. d6d8aa6
    • refactor: Minor optimizations. 9ac298a
    • refactor: Minor optimizations. 11bee15
    • refactor: Use more iterator aggregates. 19616a6
    • refactor: Use more iterator aggregates. 669a956
    • refactor: Use more iterator aggregates. 7af1d80
    • cs: Cleanup .php-cs-fixer.dist.php. 0fba6da
    • feat: Performance improvements using iterator aggregates. 3b773ad
    • chore: Normalize composer.json. e19bde8
    • tests: TypedIterator - Add test. b9aab65
    • cs: Autofix code style. cbc6c20
    • tests: StringIterator - Add test. fe15a5b
    • tests: StringIterator - Add test. a66242d
    • fix: Disable PHPCSFixer on specific files. eb61a90
    • tests: TypedIterator - Add test. 7280ebc
    • tests: Enable HTML infection reports. 468d71d
    • ci: Update PHP configuration. f54b002
    • Autofix code style. 04d7531
    • Autofix code style. 10e7eed
    • refactor: Unpack operation - Use UnpackIterableAggregate. aaa289a
    • Update license 741cbce
    • Normalize composer.json 8ef547d
    • fix: Add missing from keyword. d179b11
    • Autofix code style. 6df94ee
    • refactor: Minor optimization, remove return keyword. 7683362
    • sa: Update PHPStan baseline. 782a48e
    • sa: Fix unresolvable type. d112149
    • cs: Autofix code style. 78d5d7a
    • sa: Update typing information. 351676b
    • fix: Remove local variable. 58a3919
    • fix: Same operation - proper sign. 15bf8de
    • fix: Same operation must yield. 317b519
    • cs: Same operation, clear remaining todo. 518209b
    • refactor: Simplify fromGenerator operation. b2e1dc9
    • sa: Update typing information to reduce warnings. b2028d8
    • refactor: Simplify DropWhile operation. e794b79
    • test: Add minor test for Sort operation. 1935d11
    • Fix scrutinizer/ocular upload. 5f956e2
    • tests: Only do mutation testing on PHP 8.0. 525e32e
    • docs: Update Contributing section. 36cdcd1
    • ci: Fix scrutinizer/ocular upload. 5e67380
    • docs: Update README. 20a1352
    • ci: Fix Grumphp task name. 4fd27fd
    • docs: Enable badge showing infection tests score. 603eb82
    • ci: Enable infection tests reporting. fed4fbc
    • sa: Improve static analysis score. d11d032
    • refactor: Update Intersperse operation - do not throw when values are negative. 1497db7
    • chore: Update static files. 47eb342
    • chore: Update static files. 401cf20
    • chore: Normalize composer.json. cf34e8d

    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • chore(deps): update dependency font-awesome to v6

    chore(deps): update dependency font-awesome to v6

    Mend Renovate

    This PR contains the following updates:

    | Package | Update | Change | |---|---|---| | font-awesome (source) | major | 5.12.0 -> 6.2.1 |


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • chore(deps): update dependency doctrine/collections to v2.1.2

    chore(deps): update dependency doctrine/collections to v2.1.2

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | doctrine/collections (source) | require-dev | minor | 2.0.1 -> 2.1.2 |


    Release Notes

    doctrine/collections

    v2.1.2

    Compare Source

    Release Notes for 2.1.2

    2.1.x bugfix release (patch)

    2.1.2
    • Total issues resolved: 0
    • Total pull requests resolved: 1
    • Total contributors: 1
    Static Analysis

    v2.1.1

    Compare Source

    Release Notes for 2.1.1

    2.1.x bugfix release (patch)

    2.1.1
    • Total issues resolved: 0
    • Total pull requests resolved: 2
    • Total contributors: 2
    Static Analysis

    v2.1.0

    Compare Source

    Release Notes for 2.1.0

    Feature release (minor)

    2.1.0
    • Total issues resolved: 0
    • Total pull requests resolved: 1
    • Total contributors: 1
    Enhancement

    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • chore(deps): update dependency squizlabs/php_codesniffer to v3.7.1

    chore(deps): update dependency squizlabs/php_codesniffer to v3.7.1

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | squizlabs/php_codesniffer (source) | require-dev | minor | 3.6.2 -> 3.7.1 |


    Release Notes

    squizlabs/PHP_CodeSniffer

    v3.7.1

    Compare Source

    • Fixed bug #​3609: Methods/constants with name empty/isset/unset are always reported as error
      • Thanks to Juliette Reinders Folmer (@​jrfnl) for the patch

    v3.7.0

    Compare Source

    PHP 8.1 Language Feature Support

    PHP_CodeSniffer has run correctly under PHP 8.1 since PHP 8 support was added, but it has not supported new 8.1 language features until this release. Version 3.7.0 adds support for the following PHP 8.1 language features:

    • Enums
    • Explicit octal notation
    • Readonly properties
    • Intersection types
    • The never type

    Note: Standards and sniffs included with PHP_CodeSniffer have been updated to support these language features, but external standards and sniffs may need updating before they are able to detect them correctly.

    Changelog

    • Added support for PHP 8.1 explicit octal notation
      • This new syntax has been backfilled for PHP versions less than 8.1
      • Thanks to Mark Baker (@​MarkBaker) for the patch
      • Thanks to Juliette Reinders Folmer (@​jrfnl) for additional fixes
    • Added support for PHP 8.1 enums
      • This new syntax has been backfilled for PHP versions less than 8.1
      • Includes a new T_ENUM_CASE token to represent the case statements inside an enum
      • Thanks to Jaroslav Hanslík (@​kukulich) for the patch
      • Thanks to Juliette Reinders Folmer (@​jrfnl) for additional core and sniff support
    • Added support for the PHP 8.1 readonly token
      • Tokenzing of the readonly keyword has been backfilled for PHP versions less than 8.1
      • Thanks to Jaroslav Hanslík (@​kukulich) for the patch
    • Added support for PHP 8.1 intersection types
      • Includes a new T_TYPE_INTERSECTION token to represent the ampersand character inside intersection types
      • Thanks to Jaroslav Hanslík (@​kukulich) for the patch
    • File::getMethodParameters now supports the new PHP 8.1 readonly token
      • When constructor property promotion is used, a new property_readonly array index is included in the return value
        • This is a boolean value indicating if the property is readonly
      • If the readonly token is detected, a new readonly_token array index is included in the return value
        • This contains the token index of the readonly keyword
      • Thanks to Juliette Reinders Folmer (@​jrfnl) for the patch
    • Support for new PHP 8.1 readonly keyword has been added to the following sniffs:
      • Generic.PHP.LowerCaseKeyword
      • PSR2.Classes.PropertyDeclaration
      • Squiz.Commenting.BlockComment
      • Squiz.Commenting.DocCommentAlignment
      • Squiz.Commenting.VariableComment
      • Squiz.WhiteSpace.ScopeKeywordSpacing
      • Thanks to Juliette Reinders Folmer (@​jrfnl) for the patches
    • The parallel feature is now more efficient and runs faster in some situations due to improved process management
    • The list of installed coding standards now has consistent ordering across all platforms
      • Thanks to Juliette Reinders Folmer (@​jrfnl) for the patch
    • Generic.PHP.UpperCaseConstant and Generic.PHP.LowerCaseConstant now ignore type declarations
      • These sniffs now only report errors for true/false/null when used as values
      • Thanks to Juliette Reinders Folmer (@​jrfnl) for the patch
    • Generic.PHP.LowerCaseType now supports the PHP 8.1 never type
    • Fixed bug #​3502 : A match statement within an array produces Squiz.Arrays.ArrayDeclaration.NoKeySpecified
    • Fixed bug #​3503 : Squiz.Commenting.FunctionComment.ThrowsNoFullStop false positive when one line @throw
    • Fixed bug #​3505 : The nullsafe operator is not counted in Generic.Metrics.CyclomaticComplexity
    • Fixed bug #​3526 : PSR12.Properties.ConstantVisibility false positive when using public final const syntax
      • Thanks to Juliette Reinders Folmer (@​jrfnl) for the patch
    • Fixed bug #​3530 : Line indented incorrectly false positive when using match-expression inside switch case
    • Fixed bug #​3534 : Name of typed enum tokenized as T_GOTO_LABEL
      • Thanks to Juliette Reinders Folmer (@​jrfnl) for the patch
    • Fixed bug #​3546 : Tokenizer/PHP: bug fix - parent/static keywords in class instantiations
      • Thanks to Juliette Reinders Folmer (@​jrfnl) for the patch
    • Fixed bug #​3550 : False positive from PSR2.ControlStructures.SwitchDeclaration.TerminatingComment when using trailing comment
      • Thanks to Juliette Reinders Folmer (@​jrfnl) for the patch
    • Fixed bug #​3575: Squiz.Scope.MethodScope misses visibility keyword on previous line
      • Thanks to Juliette Reinders Folmer (@​jrfnl) for the patch
    • Fixed bug #​3604: Tokenizer/PHP: bug fix for double quoted strings using ${
      • Thanks to Juliette Reinders Folmer (@​jrfnl) for the patch

    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • chore(deps): update dependency phpstan/phpstan to v1.9.7

    chore(deps): update dependency phpstan/phpstan to v1.9.7

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | phpstan/phpstan | require-dev | minor | 1.7.3 -> 1.9.7 |


    Release Notes

    phpstan/phpstan

    v1.9.7

    Compare Source

    Bleeding edge 🔪

    • Empty skipCheckGenericClasses (https://github.com/phpstan/phpstan-src/commit/28c2c79b16cac6ba6b01f1b4d211541dd49d8a77)

    If you want to see the shape of things to come and adopt bleeding edge features early, you can include this config file in your project's phpstan.neon:

    includes:
    	- vendor/phpstan/phpstan/conf/bleedingEdge.neon
    

    Of course, there are no backwards compatibility guarantees when you include this file. The behaviour and reported errors can change in minor versions with this file included. Learn more

    Improvements 🔧

    • UnionType::pickTypes overriden in BenevolentUnionType for a more benevolent behaviour (https://github.com/phpstan/phpstan-src/commit/480626ecb52d2e98cc28cee8a18dfb86112b7f8f)

    Bugfixes 🐛

    • Fixed incorrect while loop logic (https://github.com/phpstan/phpstan-src/commit/091fcafb07ac0b3eb261285c049d9c0f214a535c), #​8643
    • Fixed scenario with zero analysed files (https://github.com/phpstan/phpstan-src/commit/6debffdb5892f7fb311a60634ec9cda79b6e3154)

    Function signature fixes 🤖

    Internals 🔍

    v1.9.6

    Compare Source

    Improvements 🔧

    Bugfixes 🐛

    • One-part encapsed string is correctly converted to string (https://github.com/phpstan/phpstan-src/commit/dc77608ee9ab22e352cd3df60ce2bc2d8d135abc), #​8635
    • Conditional expressions - do not take conclusions about identical variable in assignment (https://github.com/phpstan/phpstan-src/commit/cde53d19e9b4edf81f4c469b7f2a2c3634004d86), #​8625, #​8621

    v1.9.5

    Compare Source

    Improvements 🔧

    • Improve constant string union handling for concat and encapsed string (#​2057), thanks @​schlndh!
    • PhpVersion: supportsDisjunctiveNormalForm (#​2130), thanks @​janedbal!
    • Constant scalar types might accept general type from the same family (#​2131) - this moves some errors from earlier levels to level 7
    • Implement OversizedArrayBuilder to improve huge constant array performance (#​2116), #​8215, thanks @​staabm!
    • Improve performance again by dumbing down nested arrays (#​2077)
    • Result cache should not be invalidated by changes to editorUrl, editorUrlTitle and errorFormat parameters (#​2136), thanks @​bendavies!
    • Faster MutatingScope::shouldInvalidateExpression() (#​2139), thanks @​staabm!
    • Add ReturnStatementsNode::hasNativeReturnTypehint() (#​2141), thanks @​janedbal!
    • TypeNodeResolver - lowercase-string and non-empty-lowercase-string are known (https://github.com/phpstan/phpstan-src/commit/884ceb015c68e8c40a066732b4bc873bed568d38)

    Bugfixes 🐛

    Internals 🔍

    • Use isArray, isConstantArray instead of instanceof in TypeCombinartor::union (#​2118), thanks @​rajyan!
    • Fix typo (#​2127), thanks @​rajyan!
    • AnalyserIntegrationTest - run with bleedingEdge (https://github.com/phpstan/phpstan-src/commit/db2de6f17469e9bc0d078e09c895d64a39fe14ca)
    • Refactor options handling in FilterVarDynamicReturnTypeExtension (#​2120), thanks @​herndlm!
    • Add Type::isScalar() (#​2149), thanks @​herndlm!
    • Removed unused fileName in FetchedNode (#​2150), thanks @​staabm!
    • Removed unused NodeList class (#​2151), thanks @​staabm!
    • Add namespace to bug-8573.php / fix GenericsIntegrationTest (#​2147), thanks @​herndlm!

    v1.9.4

    Compare Source

    Improvements 🔧

    Bugfixes 🐛

    • Fix native type on unset (#​2107), #​7805, thanks @​rajyan!
    • Fix return type of array_search() with constant array type haystack (#​1806), #​3789, thanks @​takaram!
    • parse_str() might return nested arrays by-ref (#​1994), #​8356, thanks @​staabm!
    • Fix regression in for loop (https://github.com/phpstan/phpstan-src/commit/a8975b1800d6c5cb88a6af02e132b4e44e093fc3), #​8520
    • Fix readonly properties bugs and infinite recursion (https://github.com/phpstan/phpstan-src/commit/a7fed03bbf1bef545c8afcbf6c906ac93b34c876), #​8543
    • Fix internal error for dynamic properties defined on interface on PHP 8.2 (https://github.com/phpstan/phpstan-src/commit/4025209062e31619077197006ce44b5d60a9f2c1), #​8537

    Internals 🔍

    v1.9.3

    Compare Source

    Bleeding edge 🔪

    If you want to see the shape of things to come and adopt bleeding edge features early, you can include this config file in your project's phpstan.neon:

    includes:
    	- vendor/phpstan/phpstan/conf/bleedingEdge.neon
    

    Of course, there are no backwards compatibility guarantees when you include this file. The behaviour and reported errors can change in minor versions with this file included. Learn more

    Improvements 🔧

    Bugfixes 🐛

    Function signature fixes 🤖

    Internals 🔍

    • Fix non-working type assertions in NodeScopeResolverTest cases (#​1992), thanks @​herndlm!
    • Use ExpressionTypeHolders for conditional expression type (#​1998), thanks @​rajyan!
    • Simplify array collections in UnionTypeHelper (#​1988), thanks @​herndlm!
    • Avoid specifying scalar types and delete string casts (#​1999), thanks @​rajyan!
    • Add filename and line of the error of assertVariableCertainty (#​2008), thanks @​rajyan!
    • README: how to composer install (#​2025), thanks @​janedbal!
    • Group $expressionTypes and $nativeExpressionTypes in Scope creation methods (#​2022), thanks @​herndlm!
    • Use ExpressionTypeHolder when comparing conditionals (#​2048), thanks @​rajyan!
    • UnionType - carry information that it's normalized (https://github.com/phpstan/phpstan-src/commit/96e4443d94501012042cf6bd9f8d6b34af7fcfb6)
    • VerbosityLevel offers getLevelValue() (https://github.com/phpstan/phpstan-src/commit/4f7e20b6ffae103ac3de52e5da1ef77dbc0ba485)
    • Get rid of TypeTraverser in ArrayChunkFunctionReturnTypeExtension (#​2082), thanks @​herndlm!
    • Get rid of TypeTraverser in ArraySliceFunctionReturnTypeExtension (#​2085), thanks @​herndlm!
    • Get rid of TypeTraverser in ArrayReverseFunctionReturnTypeExtension (#​2084), thanks @​herndlm!
    • Get rid of TypeTraverser in StrSplitFunctionReturnTypeExtension (#​2087), thanks @​herndlm!

    v1.9.2

    Compare Source

    Bugfixes 🐛

    Function signature fixes 🤖

    Internals 🔍

    v1.9.1

    Compare Source

    Improvements 🔧

    Bugfixes 🐛

    v1.9.0

    Compare Source

    Check out the article about this release!

    Major new features 🚀

    Bleeding edge 🔪

    • Array list type (#​1751), #​3311, #​8185, #​6243, thanks @​rvanvelzen!
      • Lists are arrays with sequential integer keys starting at 0
    • Improve error wording of the NonexistentOffset, BooleanAndConstantConditionRule, and BooleanOrConstantConditionRule (#​1882), thanks @​VincentLanglet!
    • MissingMagicSerializationMethodsRule (#​1711), #​7482, thanks @​staabm!
    • Unescape strings in phpdoc-parser (https://github.com/phpstan/phpstan-src/commit/97786ed8376b478ec541ea9df1c450c1fbfe7461)
    • Stub files validation - detect duplicate classes and functions (https://github.com/phpstan/phpstan-src/commit/ddf8d5c3859c2c75c20f525a0e2ca8b99032373a, https://github.com/phpstan/phpstan-src/commit/17e4b74335e5235d7cd6708eb687a774a0eeead4)

    If you want to see the shape of things to come and adopt bleeding edge features early, you can include this config file in your project's phpstan.neon:

    includes:
    	- vendor/phpstan/phpstan/conf/bleedingEdge.neon
    

    Of course, there are no backwards compatibility guarantees when you include this file. The behaviour and reported errors can change in minor versions with this file included. Learn more

    Improvements 🔧

    Bugfixes 🐛

    Function signature fixes 🤖

    Internals 🔍

    v1.8.11

    Compare Source

    Improvements 🔧

    • MatchExpressionArmBody virtual node (#​1726), thanks @​janedbal!
    • Detect duplicate included files in ContainerFactory (https://github.com/phpstan/phpstan-src/commit/f15cd6deea2dda4b41272aa50fb3b61304ad3515, https://github.com/phpstan/phpstan-src/commit/4cdb8060b73fc09e25cf230041532f068974234d)
    • ClassPropertyNode - carry PHPDoc type (https://github.com/phpstan/phpstan-src/commit/dcd8bac24fdbe0723b9307f3f3b2e8e38cc7eae1)

    Bugfixes 🐛

    • Fix several stale result cache issues:
      • Fix stale @mixin result cache issue (https://github.com/phpstan/phpstan-src/commit/7228d4d5c6ba0289bd67a0b0bd113a6aafed5faa), #​7831
      • Include @template tags in the result cache (https://github.com/phpstan/phpstan-src/commit/4c0cb98c84f7c4dfe62e21f6b163529a150861fe)
      • Reanalyse all files with errors when new symbol appears (https://github.com/phpstan/phpstan-src/commit/bc9301d983c03cc5716ee2e00c32713c80e4b53e)
      • DependencyResolver - add method/property declaring classes to dependencies (https://github.com/phpstan/phpstan-src/commit/e1c13669492079f065fd8138680fc91c96c3729a)
      • DependencyResolver - declaring classes for static fetches (https://github.com/phpstan/phpstan-src/commit/be6e7ced22b578d67e58f63b9649ad2ef2c35911)
      • DependencyResolver - @method, @property, @extends, @implements tags (https://github.com/phpstan/phpstan-src/commit/ec5b6331e910e18bec1abfa4a1db8961509c7591)
      • Fix result cache getting stale because of trait @use (https://github.com/phpstan/phpstan-src/commit/08703d1dacf47cc26a33542d0589bf7912c2aeb4)
      • Fix stale result cache for property types (https://github.com/phpstan/phpstan-src/commit/9e4e93b48cc32298c0a1661f14891307a22def7b)
    • Fix wrong type inference about array (#​1808), #​8087, thanks @​VincentLanglet!
    • Invalidate DI container based on included files hashes (https://github.com/phpstan/phpstan-src/commit/615c6a1d6216a0d4b357c67657ba340c88a98a3b)
    • Virtual expr nodes - do not reuse wrong attributes, a printed expr might be cached there (https://github.com/phpstan/phpstan-src/commit/83691977757661e4160c89a533cdaf589434d782)
    • Fix reordering unspecified named arguments (#​1903), #​8204, thanks @​rvanvelzen!

    v1.8.10

    Compare Source

    Improvements 🔧

    • RuleTestCase: enable gathering analyser errors without causing test failures (#​1728), thanks @​schlndh!

    Bugfixes 🐛

    • Update BetterReflection to 6.3.0, fixes internal error (https://github.com/phpstan/phpstan-src/commit/9febf1db4b4e3a4f3462fdd6ffa67b22a420f05a), #​8139
    • Call nodeCallback with original argument with a name after reordering (https://github.com/phpstan/phpstan-src/commit/ecc3076769a7943e33801d024eeab0b08187c204)

    Function signature fixes 🤖

    v1.8.9

    Compare Source

    Improvements 🔧

    • Slightly optimize TypeCombinator::reduceArrays() even more (#​1814), thanks @​rvanvelzen!
    • Micro optimizations in TypeCombinator (#​1816), thanks @​mad-briller!
    • Improve array_search() type specifier performance (#​1818), #​8147, thanks @​rvanvelzen!
    • Rule registry now gets rules instances in lazy manner (https://github.com/phpstan/phpstan-src/commit/b1b0dc921894da1f24721702262e64399a39c626)
    • Show progress bar sooner (https://github.com/phpstan/phpstan-src/commit/8e55decc78ab9da6ffe4cc62045c752794ed2d7a)

    Bugfixes 🐛

    • Make key_exists be treated like array_key_exists (#​1800), #​8091, thanks @​takaram!
    • Fix resolving class types in inherited docblock (#​1815), #​7839, thanks @​rvanvelzen!
    • Fix passing named arguments to by-ref parameter (#​1807), #​8142, thanks @​rvanvelzen!
    • IncompatiblePropertyPhpDocTypeRule - fix inconsistency for stubbed PHPDocs (https://github.com/phpstan/phpstan-src/commit/32b3c67729267a1f7a4dcae590e7ce9013eabfee)
    • non-empty-string can still contain falsy strings as individual characters (https://github.com/phpstan/phpstan-src/commit/76bd347d2281f311ed5aa4a5c8a6632f2f136eff), #​8158

    Function signature fixes 🤖

    v1.8.8

    Compare Source

    Improvements 🔧

    • Cover ExprPrinter by BC promise (#​1794), thanks @​staabm!
    • Improve isset specification in falsy scope (#​1781), thanks @​herndlm!s
    • Update phpstan/phpdoc-parser to 1.9.0 (https://github.com/phpstan/phpstan-src/commit/fd94186ee2a8065c94edb4603dd954584e9e8f45)

    Bugfixes 🐛

    • Do not drop original specified expression in TypeSpecifier (#​1793), #​8076, thanks @​herndlm!
    • Preserve accessory types in MutatingScope::generalizeType (#​1732), #​8015, thanks @​herndlm!
    • Specify types on get_parent_class() (#​1383), #​5552, thanks @​staabm!
    • Do not load Composer\InstalledVersions to parse PHPStan version (https://github.com/phpstan/phpstan-src/commit/acbb55baeeb2f02b0ea2e61b4321e4f5dd5f65b2), [#​8117](https://togithub.c

    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • chore(deps): update dependency phpmd/phpmd to v2.13.0

    chore(deps): update dependency phpmd/phpmd to v2.13.0

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | phpmd/phpmd (source) | require-dev | minor | 2.12.0 -> 2.13.0 |


    Release Notes

    phpmd/phpmd

    v2.13.0

    Compare Source

    ========================

    • Require pdepend/pdepend 2.12
      • Added PHP 8.1 and 8.2 syntax support See full changes list:
      • https://github.com/pdepend/pdepend/releases/tag/2.12.0
      • https://github.com/pdepend/pdepend/releases/tag/2.11.0
    • Added #​943 Static access add ignore pattern for methods
    • Added #​958 Add missing ruleset error message on baseline
    • Added #​955 Add Gitlab renderer for Gitlab CI
    • Fixed #​4 Typo on Superglobals rule
    • Fixed #​976 Avoid deprecated exceptions
    • Fixed #​977 Add missing github & gitlab reportfile options
    • Improved #​954 npath complexity documentation with example
    • Improved #​946 Highlight readme code examples

    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
Releases(v2.0.0)
  • v2.0.0(Dec 1, 2022)

    Full Changelog: https://github.com/scrawler-labs/arca-orm/compare/v1.1.3...v2.0.0

    • New Database Facade
    • Removed Singleton Anti-Pattern
    • Code optimisation
    • get() is now split into get() [for all record]s and getOne() [for single]
    Source code(tar.gz)
    Source code(zip)
  • v1.1.3(Nov 13, 2022)

    What's Changed

    • chore(deps): update dependency doctrine/collections to v2.0.1 by @renovate in https://github.com/scrawler-labs/arca-orm/pull/18

    Full Changelog: https://github.com/scrawler-labs/arca-orm/compare/v1.1.2...v1.1.3

    Source code(tar.gz)
    Source code(zip)
  • v1.1.2(Sep 29, 2022)

    Dependency updates ⬆

    What's Changed

    • Configure Renovate by @renovate in https://github.com/scrawler-labs/arca-orm/pull/6
    • chore(deps): pin dependencies by @renovate in https://github.com/scrawler-labs/arca-orm/pull/7
    • chore(deps): pin dependency phpstan/phpstan to v1.7.3 by @renovate in https://github.com/scrawler-labs/arca-orm/pull/8
    • chore(deps): update dependency doctrine/collections to v1.8.0 by @renovate in https://github.com/scrawler-labs/arca-orm/pull/11
    • chore(deps): update dependency loophp/phpunit-iterable-assertions to v1.0.3 by @renovate in https://github.com/scrawler-labs/arca-orm/pull/10
    • chore(deps): update actions/checkout action to v3 by @renovate in https://github.com/scrawler-labs/arca-orm/pull/12
    • chore(deps): update dependency doctrine/collections to v2 by @renovate in https://github.com/scrawler-labs/arca-orm/pull/13

    New Contributors

    • @renovate made their first contribution in https://github.com/scrawler-labs/arca-orm/pull/6

    Full Changelog: https://github.com/scrawler-labs/arca-orm/compare/v1.1.1...v1.1.2

    Source code(tar.gz)
    Source code(zip)
  • v1.1.1(May 29, 2022)

  • v1.1.0(May 29, 2022)

  • v1.0.1(May 24, 2022)

  • v1.0.0(May 24, 2022)

Owner
Scrawler Labs
Scrawler Labs Open Source Projects
Scrawler Labs
Analogue ORM : Data Mapper ORM for Laravel/PHP

(this project is looking for a new maintainer) Analogue ORM Analogue is a flexible, easy-to-use ORM for PHP. It is a transposition of the Eloquent ORM

Analogue ORM 632 Dec 13, 2022
A lightweight nearly-zero-configuration object-relational mapper and fluent query builder for PHP5.

Idiorm http://j4mie.github.com/idiormandparis/ Feature/API complete Idiorm is now considered to be feature complete as of version 1.5.0. Whilst it wil

Jamie Matthews 2k Dec 27, 2022
The Enobrev\ORM library is a small framework of classes meant to be used for simply mapping a mysql database to PHP classes, and for creating simply SQL statements using those classes.

The Enobrev\ORM library is a small framework of classes meant to be used for simply mapping a mysql database to PHP classes, and for creating simply SQL statements using those classes.

Mark Armendariz 0 Jan 7, 2022
Orm is a simple database abstraction layer that supports postgresql.

Orm What is it Orm is a simple database abstraction layer that supports postgresql. Welcome to join us or star us for encouragement. Requires php 8.1

null 2 Sep 28, 2022
A SQL query builder with zero dependencies

Latitude Query Builder A SQL query builder with zero dependencies. Attempts to be PSR-1, PSR-2, and PSR-4 compliant. Install composer require latitude

Woody Gilk 618 Dec 30, 2022
A drop-in Doctrine ORM 2 implementation for Laravel 5+ and Lumen

Laravel Doctrine ORM A drop-in Doctrine ORM 2 implementation for Laravel 5+ $scientist = new Scientist( 'Albert', 'Einstein' ); $scientist->a

Laravel Doctrine 777 Dec 17, 2022
MongoDB ORM that includes support for references,embed and multilevel inheritance.

Introduction Features Requirements Installation Setup Database Basic Usage - CRUD Relationship - Reference Relationship - Embed Collection Inheritance

Michael Gan 202 Nov 17, 2022
Doctrine Object Relational Mapper (ORM)

3.0.x 2.9.x 2.8.x Doctrine 2 is an object-relational mapper (ORM) for PHP 7.1+ that provides transparent persistence for PHP objects. It sits on top o

Doctrine 9.5k Jan 2, 2023
Baum is an implementation of the Nested Set pattern for Laravel's Eloquent ORM.

Baum Baum is an implementation of the Nested Set pattern for Laravel 5's Eloquent ORM. For Laravel 4.2.x compatibility, check the 1.0.x branch branch

Estanislau Trepat 2.2k Jan 3, 2023
Propel2 is an open-source high-performance Object-Relational Mapping (ORM) for modern PHP

Propel2 Propel2 is an open-source Object-Relational Mapping (ORM) for PHP. Requirements Propel uses the following Symfony Components: Config Console F

Propel 1.2k Dec 27, 2022
PHP DataMapper, ORM

Cycle ORM Cycle is PHP DataMapper, ORM and Data Modelling engine designed to safely work in classic and daemonized PHP applications (like RoadRunner).

Cycle ORM 1.1k Jan 8, 2023
Extensions for the Eloquent ORM

Sofa/Eloquence Easy and flexible extensions for the Eloquent ORM. Currently available extensions: Searchable query - crazy-simple fulltext search thro

Jarek Tkaczyk 1.1k Dec 20, 2022
Ouzo Framework - PHP MVC ORM

Ouzo is a PHP MVC framework with built-in ORM and util libraries. PHP 8.0 or later is required. We believe in clean code and simplicity. We value unit

Ouzo 69 Dec 27, 2022
Builds Cycle ORM schemas from OpenAPI 3 component schemas

Phanua OpenAPI 3 + Jane + Cycle ORM = ?? Phanua builds Cycle ORM schemas from OpenAPI 3 component schemas. Released under the MIT License. WARNING: Th

Matthew Turland 5 Dec 26, 2022
Simple Enum cast for Eloquent ORM using myclabs/php-enum.

Enum cast for Eloquent Simple Enum cast for Eloquent ORM using myclabs/php-enum. Requirements PHP 7.3 or higher Laravel 8.0 or higher Installation You

Orkhan Ahmadov 5 Apr 21, 2022
Extra RedBean ORM

RedBeanPHP 5 RedBeanPHP is an easy to use ORM tool for PHP. Automatically creates tables and columns as you go No configuration, just fire and forget

GingTeam Development 5 Nov 23, 2022
Articulate - An alternative ORM for Laravel, making use of the data mapper pattern

Articulate Laravel: 8.* PHP: 8.* License: MIT Author: Ollie Read Author Homepage: https://ollie.codes Articulate is an alternative ORM for Laravel bas

Ollie Codes 4 Jan 4, 2022
SleekwareDB is a NoSQL database storage service. A database storage service that can be used for various platforms and is easy to integrate.

SleekwareDB is a NoSQL database storage service. A database storage service that can be used for various platforms and is easy to integrate. NoSQL API

SleekwareDB 12 Dec 11, 2022
Pure PHP NoSQL database with no dependency. Flat file, JSON based document database.

Please give it a Star if you like the project ?? ❤️ SleekDB - A NoSQL Database made using PHP Full documentation: https://sleekdb.github.io/ SleekDB i

Kazi Mehedi Hasan 745 Jan 7, 2023