AthenaeumAthenaeum
Packages
  • next
  • current
  • v9.x
  • v8.x
  • v7.x
  • v6.x
  • v5.x
  • v4.x
  • v3.x
  • v2.x
  • v1.x
Changelog
GitHub
Packages
  • next
  • current
  • v9.x
  • v8.x
  • v7.x
  • v6.x
  • v5.x
  • v4.x
  • v3.x
  • v2.x
  • v1.x
Changelog
GitHub
  • Version 8.x

    • Release Notes
    • Upgrade Guide
    • New to this...
    • Contribution Guide
    • Security Policy
    • Code of Conduct
    • Origin
  • ACL

    • Introduction
    • How to install
    • Setup
    • Permissions
    • Roles
    • Users
    • Cached Permissions
  • Antivirus

    • Introduction
    • How to install
    • Setup
    • How to use
    • Scanners

      • Introduction
      • ClamAV
      • Null
      • Custom
    • Events
    • PSR
  • Audit

    • Audit
    • How to install
    • Setup
    • Recording
    • Events
  • Auth

    • Introduction
    • How to install
    • Fortify

      • Prerequisites
      • Actions

        • Rehash Password
  • Circuits

    • Circuits
    • How to install
    • Setup
    • Usage
    • Events
  • Collections

    • Collections
    • How to install
    • Summation

      • Summation Collection
      • Items Processor
  • Config

    • Configuration Loader
    • How to install
    • Setup
    • Load Configuration Files
    • Custom File Parsers
  • Console

    • Command and Schedule Registration
    • How to install
    • Setup
    • Commands
    • Schedules
  • Container

    • IoC Service Container
    • How to install
    • Container
    • List Resolver
  • Core

    • Athenaeum Core Application
    • How to install
    • Setup
    • Usage

      • Configuration
      • Service Providers
      • Service Container
      • Events
      • Caching
      • Logging
      • Console
      • Task Scheduling
      • Exception Handling
      • Extending Core Application
      • Testing
  • Database

    • Introduction
    • How to install
    • Models

      • Instantiatable
      • Sluggable
    • Query

      • Criteria (Query Filter)
  • Dto

    • Data Transfer Object (DTO)
    • How to install
    • Create Interface
    • Implement DTO
    • How to use
    • Populate
    • Export
    • Json
    • Serialization
    • Nested DTOs
    • Array DTO
  • ETags

    • Introduction
    • How to install
    • Setup
    • ETags usage

      • How to use
      • Generators

        • Default Generator
        • Custom Generator
      • Eloquent Models
    • Http Request Preconditions

      • Introduction
      • Resource Context
      • Preconditions
      • Actions
      • RFC 9110

        • If-Match
        • If-Unmodified-Since
        • If-None-Match
        • If-Modified-Since
        • If-Range
      • Extensions

        • Introduction
        • Range
      • Range Validator
      • Download Stream
    • Macros
  • Events

    • Register Listeners and Subscribers
    • How to install
    • Setup
    • Listeners
    • Subscribers
  • Filters

    • Search Filter Utilities
    • Prerequisites
    • How to install
    • Setup
    • Processor
    • Filters Builder
    • Predefined Resources

      • Search Processor
      • Sorting Processor
      • Constraints Processor
      • Matching Processor
    • Tip: Create a base builder
  • Flysystem

    • Introduction
    • Database Adapter

      • Introduction
      • How to install
      • Setup
      • Data Deduplication
      • MIME-Type Detection
  • Http

    • Api

      • Http API
      • How to install
      • Setup
      • Resources

        • Introduction
        • Timestamps
        • Self-Link
        • Relations
        • Caching
        • Registrar
      • Requests

        • Introduction
        • List Resources
        • List Deleted
        • Show Resource
        • Create Resource
        • Update Resource
        • Delete Resource
        • List Related
        • Process Multiple Resources
        • Helpers
      • Middleware

        • Introduction
        • Request Must Be Json
        • Capture Fields To Select
        • Remove Response Payload
    • Clients

      • Http Clients
      • How to install
      • Setup
      • Basic Usage
      • Available Methods

        • Fluent Api
        • Protocol Version
        • Base Uri
        • Http Method and Uri
        • Headers
        • Accept & Content-Type
        • Authentication
        • Http Query
        • Payload Format
        • Payload
        • Attachments
        • Cookies
        • Response Expectations
        • Middleware
        • Conditions
        • Criteria
        • Redirects
        • Timeout
        • Debugging
        • Logging
        • Driver Options
        • Driver
      • Http Query Builder

        • Introduction
        • Select
        • Where
        • Dates
        • Include
        • Pagination
        • Sorting
        • Raw Expressions
        • Custom Grammar
    • Cookies

      • Http Cookies
      • How to install
      • Usage
    • Messages

      • Http Messages
      • How to install
      • Serializers
  • Maintenance

    • Modes

      • Maintenance Modes
      • How to install
      • Setup
      • Basic Usage
      • Available Drivers
  • Mime Types

    • MIME-Types
    • How to install
    • Setup
    • Usage
    • Drivers

      • Available Drivers
      • File Info
  • Properties

    • Properties Overload
    • How to install
    • Usage
    • Naming Convention
    • Properties Visibility
  • Redmine

    • Redmine Api Client
    • How to install
    • Setup
    • General Usage

      • Supported Operations
      • Fetch list of resources
      • Find
      • Fetch
      • Create new record
      • Update existing record
      • Delete existing record
      • Relations
    • Available Resources

      • Predefined Resources
      • Attachments
      • Enumerations
      • Issue Relations
      • Users
      • User Groups
      • Roles
      • Project Memberships
      • Versions (Milestones)
      • Issue Categories
      • Trackers
  • Service

    • Service Registrar
    • How to install
    • How to use
  • Streams

    • Streams
    • How to install
    • Setup
    • How to use

      • Introduction
      • Open and Close
      • Raw Resource
      • Seeking
      • Reading
      • Writing
      • Size
      • Truncate
      • Sync
      • Flush
      • Hash
      • MIME-Type
      • Filename
      • Output
      • Locking
      • Transactions
      • Meta
      • Misc
  • Support

    • Introduction
    • How to install
    • Laravel Aware-of Helpers

      • How to use
      • Enforce Via Interface
      • Custom Default
      • Pros and Cons
      • Available Helpers
    • Aware-of Properties

      • Generator
      • Available Aware-of Helpers
    • Live Templates
  • Testing

    • Introduction
    • How to install
    • Test Cases
    • Testing Aware-of Helpers
  • Translation

    • Introduction
    • How to install
    • Exporters

      • Introduction
      • Setup
      • How to use
      • Drivers

        • Introduction
        • Array
        • Lang.js (Array)
        • Lang.js (JSON)
        • Cache
  • Utils

    • Introduction
    • How to install
    • Array
    • Duration
    • Json
    • Math
    • Memory
    • Method Helper
    • Invoker
    • Populatable
    • String
    • Version
  • Validation

    • Introduction
    • How to install
    • Setup
    • Rules

      • Alpha-Dash-Dot
      • Date Format
      • Semantic Version
You are viewing documentation for an outdated version. It is no longer supported!

Upgrade Guide

From version 7.x to 8.x

  • From version 7.x to 8.x
    • PHP version 8.2 required
    • Laravel v11.x
    • Anti-Virus Default Scanner
    • Validated API Request after()
    • Flysystem
    • Validation
    • Trait Tester
    • Password Rehashing Action
    • Random Int
    • Removed Deprecated Components
  • Onward

PHP version 8.2 required

You need PHP v8.2 or higher to run Athenaeum packages.

Note: PHP v8.3 is supported!

Laravel v11.x

Please read Laravel's upgrade guide, before continuing here.

Anti-Virus Default Scanner

In version Athenaeum v7.x, a NullScanner was returned as the default scanner, when no profile was specified. The default scanner has now been changed to ClamAv, when no profile is specified.

use Aedart\Antivirus\Facades\Antivirus;

$scanner = Antivirus::profile(); // ClamAv

You can change this behaviour by editing your config/antivirus.php configuration file.

Validated API Request after()

The ValidatedApiRequest no longer overwrites Laravel's "class based after() validation rules". #168, #167. Now, you need to overwrite the afterValidation(), if you wish to perform post validation logic.

❌ previously

namespace Acme\Requests;

use Illuminate\Foundation\Http\FormRequest;

class ListUsersRequest exends FormRequest
{
    public function after(Validator $validator)
    {        
        // ...not shown
    }
}

✔️ Now

namespace Acme\Requests;

use Illuminate\Foundation\Http\FormRequest;

class ListUsersRequest exends FormRequest
{
    public function afterValidation(Validator $validator)
    {        
        // ...not shown
    }
}

Flysystem

The RecordTypes and Visibility interface has been converted into an enum, in \Aedart\Contracts\Flysystem\Db (contributed by Trukes). This change should not affect your existing code, unless you are directly dependent on previous const values in the defined interfaces. If that is the case, then you might have to explicitly require the enum case's value.

❌ previously

use Aedart\Contracts\Flysystem\Visibility;

$visibility = Visibility::PRIVATE; // private

✔️ Now

use Aedart\Contracts\Flysystem\Visibility;

$visibility = Visibility::PRIVATE->value; // private

Validation

The AlphaDashDot and SemanticVersion validation rules now inherit from BaseValidationRule, in \Aedart\Validation\Rules. If you are extending these validation rules, then you may have to adapt your code.

Additionally, if you have validation rules that inherit from \Aedart\Validation\Rules\BaseRule (removed), then you must upgrade them to inherit from the new BaseValidationRule.

❌ previously

use Aedart\Validation\Rules\BaseRule;

class MyValidationRule extends BaseRule
{
    // ...not shown...
}

✔️ Now

use Aedart\Validation\Rules\BaseValidationRule;

class MyValidationRule extends BaseValidationRule
{
    // ...not shown...
}

See the source code and Laravel Validation Rules for additional information.

Trait Tester

The TraitTester in \Aedart\Testing\Helpers has been reworked to use Mockery, instead of the previous trait testing utilities offered by PHPUnit. This change should not affect you, unless you are extending / overwriting this testing utility.

Password Rehashing Action

Automatic password rehashing has become a default part of Laravel, since version v11.x (see Laravel documentation for details). For this reason, the RehashPasswordIfNeeded action and PasswordWasRehashed, in \Aedart\Auth\Fortify, have been deprecated and will be removed in the next major version.

Random Int

The Math::randomInt, in \Aedart\Utils, has been deprecated. Please use Math::randomizer()->int() instead.

Removed Deprecated Components

Several deprecated components have been removed. Please review the CHANGELOG.md for details.

Onward

More extensive details can be found in the changelog.

Edit page
Last Updated: 26/02/2025, 14:20
Contributors: Alin Eugen Deac, alin
Prev
Release Notes
Next
New to this...