src/Extension/FluentDirectorExtension.php
public function updateRules(&$rules)
    {
        $originalRules = $rules;
        $fluentRules = $this->getExplicitRoutes($rules);

        // Insert Fluent Rules before the default '$URLSegment//$Action/$ID/$OtherID'
        $rules = $this->insertRuleBefore($rules, '$URLSegment//$Action/$ID/$OtherID', $fluentRules);

        $request = Injector::inst()->get(HTTPRequest::class);
        if (!$request) {
            throw new Exception('No request found');
        }

        // Ensure InitStateMddleware is called here to set the correct defaultLocale
        Injector::inst()->create(InitStateMiddleware::class)->process($request, function () {
        });

        $defaultLocale = Locale::getDefault(true);
        if (!$defaultLocale) {
            return;
        }

        // If we do not wish to detect the locale automatically, fix the home page route
        // to the default locale for this domain.
        if (!static::config()->get('detect_locale')) {
            // Respect existing home controller
            $rules[''] = [
                'Controller' => $this->getRuleController($originalRules[''], $defaultLocale),
                static::config()->get('query_param') => $defaultLocale->Locale,
            ];
        }

        // If default locale doesn't have prefix, replace default route with
        // the default locale for this domain
        if (static::config()->get('disable_default_prefix')) {
            $rules['$URLSegment//$Action/$ID/$OtherID'] = [
                'Controller' => $this->getRuleController($originalRules['$URLSegment//$Action/$ID/$OtherID'], $defaultLocale),
                static::config()->get('query_param') => $defaultLocale->Locale
            ];
        }
    }
public function updateRules(&$rules)
    {
        $originalRules = $rules;
        $fluentRules = $this->getExplicitRoutes($rules);

        // Insert Fluent Rules before the default '$URLSegment//$Action/$ID/$OtherID'
        $rules = $this->insertRuleBefore($rules, '$URLSegment//$Action/$ID/$OtherID', $fluentRules);

        $request = Injector::inst()->get(HTTPRequest::class);
        if (!$request) {
            throw new Exception('No request found');
        }

        // Ensure InitStateMddleware is called here to set the correct defaultLocale
        Injector::inst()->create(InitStateMiddleware::class)->process($request, function () {
        });

        $defaultLocale = Locale::getDefault(true);
        if (!$defaultLocale) {
            return;
        }

        // If we do not wish to detect the locale automatically, fix the home page route
        // to the default locale for this domain.
        if (!static::config()->get('detect_locale')) {
            // Respect existing home controller
            $rules[''] = [
                'Controller' => $this->getRuleController($originalRules[''], $defaultLocale),
                static::config()->get('query_param') => $defaultLocale->Locale,
            ];
        }

        // If default locale doesn't have prefix, replace default route with
        // the default locale for this domain
        if (static::config()->get('disable_default_prefix')) {
            $rules['$URLSegment//$Action/$ID/$OtherID'] = [
                'Controller' => $this->getRuleController($originalRules['$URLSegment//$Action/$ID/$OtherID'], $defaultLocale),
                static::config()->get('query_param') => $defaultLocale->Locale
            ];
        }
    }
public function updateRules ( & $ rules ) { $ originalRules = $ rules ; $ fluentRules = $ this -> getExplicitRoutes ( $ rules ) ; // Insert Fluent Rules before the default '$URLSegment//$Action/$ID/$OtherID' $ rules = $ this -> insertRuleBefore ( $ rules , '$URLSegment//$Action/$ID/$OtherID' , $ fluentRules ) ; $ request = Injector :: inst ( ) -> get ( HTTPRequest :: class ) ; if ( ! $ request ) { throw new Exception ( 'No request found' ) ; } // Ensure InitStateMddleware is called here to set the correct defaultLocale Injector :: inst ( ) -> create ( InitStateMiddleware :: class ) -> process ( $ request , function ( ) { } ) ; $ defaultLocale = Locale :: getDefault ( true ) ; if ( ! $ defaultLocale ) { return ; } // If we do not wish to detect the locale automatically, fix the home page route // to the default locale for this domain. if ( ! static :: config ( ) -> get ( 'detect_locale' ) ) { // Respect existing home controller $ rules [ '' ] = [ 'Controller' => $ this -> getRuleController ( $ originalRules [ '' ] , $ defaultLocale ) , static :: config ( ) -> get ( 'query_param' ) => $ defaultLocale -> Locale , ] ; } // If default locale doesn't have prefix, replace default route with // the default locale for this domain if ( static :: config ( ) -> get ( 'disable_default_prefix' ) ) { $ rules [ '$URLSegment//$Action/$ID/$OtherID' ] = [ 'Controller' => $ this -> getRuleController ( $ originalRules [ '$URLSegment//$Action/$ID/$OtherID' ] , $ defaultLocale ) , static :: config ( ) -> get ( 'query_param' ) => $ defaultLocale -> Locale ] ; } }
Forces regeneration of all locale routes

@param array &$rules
Forces regeneration of all locale routes