Processes

The concept of a process in the framework is the idea of the state loop which has a private entry point from a public page and returns the user back to the public page. For example, in order to login a user must pass through the following states:

show login form → validate login → display login error (if any) → return user to previous state

A user can initiate a login on any page on these four states must be passed through. Data is not modified or committed until the last step. In the framework this series of steps is called a process and is defined in gadGetStates().

Processes have several advantages. When a process is entered the public state that the user is and is saved until the process declares itself over with. Processes are unified security model that is checked with a single set of permissions (so that each state like 'load-form' and 'commit-form' don't have to be individually validated). Processes allow advancement through the states through simplified URL-getting mechanisms.

A description of how to mark the process is covered in gadGetStates().

Once the process is defined, the next state is obtained by the following line:

$url = $this->getPage()->gadStatURL($this, GSR_NEXT, $idparams);

To get the current URL one calls:

$url = $this->getPage()->gadStatURL($this, GSR_CURRENT, $idparams);

The state of the next URL is automatically calculated. The context is automatically appended to the URL.

Join AW and support river stewardship nationwide!
7.4.3PHP Version858msRequest Duration6MBMemory UsageGET content/{url}Route
    • Booting (94.42ms)
    • Application (764ms)
    • 1 x Application (89%)
      764ms
      1 x Booting (11%)
      94.42ms
      14 templates were rendered
      • legacy.views.container-view (resources/views/legacy/views/container-view.blade.php)6blade
        Params
        0
        components
        1
        controls
        2
        id
        3
        class
        4
        title
        5
        formRenderService
      • legacy.views.container-view (resources/views/legacy/views/container-view.blade.php)6blade
        Params
        0
        components
        1
        controls
        2
        id
        3
        class
        4
        title
        5
        formRenderService
      • app::layout.gadget (resources/views/layout/gadget.blade.php)2blade
        Params
        0
        contents
        1
        formRenderService
      • layout.columnstyle.one (resources/views/layout/columnstyle/one.blade.php)7blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
      • layout.columnstyle.componentstack (resources/views/layout/columnstyle/componentstack.blade.php)9blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
        7
        stack
        8
        component
      • layout.main (resources/views/layout/main.blade.php)7blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
      • layout._headers (resources/views/layout/_headers.blade.php)7blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
      • layout.header (resources/views/layout/header.blade.php)7blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
      • layout._scripts (resources/views/layout/_scripts.blade.php)7blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
      • layout.navigation (resources/views/layout/navigation.blade.php)8blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
        7
        menu
      • includes.alert.membership (resources/views/includes/alert/membership.blade.php)17blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
        7
        menu
        8
        searchurl
        9
        loginurl
        10
        logouturl
        11
        __currentLoopData
        12
        child
        13
        loop
        14
        otherchild
        15
        shouldNotifyUser
        16
        user
      • navigation.menu.static (resources/views/navigation/menu/static.blade.php)15blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
        7
        menu
        8
        searchurl
        9
        loginurl
        10
        logouturl
        11
        __currentLoopData
        12
        child
        13
        loop
        14
        otherchild
      • includes.footer (resources/views/includes/footer.blade.php)8blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
        7
        menu
      • layout.pagemap (resources/views/layout/pagemap.blade.php)7blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        contents
        5
        formRenderService
        6
        layout
      uri
      GET content/{url}
      middleware
      web
      controller
      App\Http\Controllers\Wh2oController@content
      namespace
      App\Http\Controllers
      where
      as
      generated::Os9R4mqMKRF5ktoI
      file
      app/Http/Controllers/Wh2oController.php:34-68
      4 statements were executed, 4 of which were duplicated, 0 unique33.76ms
      • select * from "articles" where ("id" = '-SecurityGadget-explain' or "short_name" = '-SecurityGadget-explain') and "articles"."deleted_at" is null and "articles"."is_final" = 'true' limit 1
        12.74ms/app/Legacy/Repositories/NewsInfo.php:61wh2o
        Metadata
        Bindings
        • 0. -SecurityGadget-explain
        • 1. -SecurityGadget-explain
        • 2. true
        Backtrace
        • 15. /app/Legacy/Repositories/NewsInfo.php:61
        • 16. /code/wh2o/ArticleGadget.inc:128
        • 17. /code/wh2o/Page1.inc:930
        • 18. /code/wh2o/Page1.inc:1019
        • 19. /code/wh2o/SecurityGadget.inc:150
      • select * from "articles" where "short_name" = '-SecurityGadget-explain' limit 1
        2.93ms/app/Legacy/Repositories/NewsInfo.php:64wh2o
        Metadata
        Bindings
        • 0. -SecurityGadget-explain
        Backtrace
        • 15. /app/Legacy/Repositories/NewsInfo.php:64
        • 16. /code/wh2o/ArticleGadget.inc:128
        • 17. /code/wh2o/Page1.inc:930
        • 18. /code/wh2o/Page1.inc:1019
        • 19. /code/wh2o/SecurityGadget.inc:150
      • select * from "articles" where ("id" = '-SecurityGadget-explain' or "short_name" = '-SecurityGadget-explain') and "articles"."deleted_at" is null and "articles"."is_final" = 'true' limit 1
        3.9ms/app/Legacy/Repositories/NewsInfo.php:61wh2o
        Metadata
        Bindings
        • 0. -SecurityGadget-explain
        • 1. -SecurityGadget-explain
        • 2. true
        Backtrace
        • 15. /app/Legacy/Repositories/NewsInfo.php:61
        • 16. /code/wh2o/ArticleGadget.inc:128
        • 17. /code/wh2o/Page1.inc:930
        • 18. /code/wh2o/Page1.inc:1019
        • 19. /code/wh2o/SecurityGadget.inc:150
      • select * from "articles" where "short_name" = '-SecurityGadget-explain' limit 1
        14.19ms/app/Legacy/Repositories/NewsInfo.php:64wh2o
        Metadata
        Bindings
        • 0. -SecurityGadget-explain
        Backtrace
        • 15. /app/Legacy/Repositories/NewsInfo.php:64
        • 16. /code/wh2o/ArticleGadget.inc:128
        • 17. /code/wh2o/Page1.inc:930
        • 18. /code/wh2o/Page1.inc:1019
        • 19. /code/wh2o/SecurityGadget.inc:150
          _token
          JcDaamVSIeYEchxg7wpYAtLGqRbSWhIhtkclbSoX
          page
          array:1 [ "count" => -1 ]
          PHPDEBUGBAR_STACK_DATA
          []
          path_info
          /content/Wiki/developer:process
          status_code
          200
          
          status_text
          OK
          format
          html
          content_type
          text/html; charset=UTF-8
          request_query
          []
          
          request_request
          []
          
          request_headers
          0 of 0
          array:15 [ "priority" => array:1 [ 0 => "u=0, i" ] "accept-encoding" => array:1 [ 0 => "gzip, deflate, br, zstd" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "host" => array:1 [ 0 => "beta.americanwhitewater.org" ] ]
          request_server
          0 of 0
          array:42 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_PRIORITY" => "u=0, i" "HTTP_ACCEPT_ENCODING" => "gzip, deflate, br, zstd" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_HOST" => "beta.americanwhitewater.org" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "beta.americanwhitewater.org" "SERVER_PORT" => "443" "SERVER_ADDR" => "172.31.18.125" "REMOTE_PORT" => "24953" "REMOTE_ADDR" => "3.133.91.217" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => true "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/opt/americanwhitewater.org/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/content/Wiki/developer:process" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "PHP_VALUE" => "post_max_size=20M" "SCRIPT_FILENAME" => "/opt/americanwhitewater.org/public/index.php" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1743730460.2491 "REQUEST_TIME" => 1743730460 ]
          request_cookies
          []
          
          response_headers
          0 of 0
          array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Fri, 04 Apr 2025 01:34:20 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6InVkbEtzN0xLdnFIcG9acUdGSmdxTlE9PSIsInZhbHVlIjoiaUVsWmpBTmNnUHh0MHFmdFVtaENNanJxSGRuQkY4VGlEb0Fabk01bm1pUlpjcW9rS1VrM2RFM2pJeFd0ZWdWd2E3ZlZ2dzB1Q09nZGpjVGpnOTNBbmRvT3NNanpYUnc0Yzc1YW1XV0JHcUdNMVNlZERVVmpxclBLSVhqRjFYTXMiLCJtYWMiOiI3ZmFiMTY1YjA0MjU1YjE0NWZmYmRhNWQxYzY0MmI5NTdiYmRkY2E3ZGNjMTQzYzYzMTBiZGNhYzBkY2UyY2Q1In0%3D; expires=Fri, 04-Apr-2025 03:34:21 GMT; Max-Age=7200; path=/XSRF-TOKEN=eyJpdiI6InVkbEtzN0xLdnFIcG9acUdGSmdxTlE9PSIsInZhbHVlIjoiaUVsWmpBTmNnUHh0MHFmdFVtaENNanJxSGRuQkY4VGlEb0Fabk01bm1pUlpjcW9rS1VrM2RFM2pJeFd0ZWdWd2E3ZlZ2d" 1 => "DWa976077ab53ea1a0f12b663e732b73c0=eyJpdiI6InduemJ3eU9WSkRJMFJGT1JXVlpBY2c9PSIsInZhbHVlIjoiMGVibm9aRDV4dmFnN21JT1FJZDQ3S0tmNEtEL3FVSjZ0TUtldHNZUU9uOGVzTXgyTGxmUHYvRStEM1BXVjdKNSIsIm1hYyI6IjFlMjRlODhlZWVjYjE3NGMyNjcxMTUzMDYwODhmNzBjODgyNWM1Yzg4NDVmMjAzYTk1OTZmM2JkODc5M2JlNjgifQ%3D%3D; expires=Fri, 04-Apr-2025 01:33:20 GMT; Max-Age=0; path=/; httponlyDWa976077ab53ea1a0f12b663e732b73c0=eyJpdiI6InduemJ3eU9WSkRJMFJGT1JXVlpBY2c9PSIsInZhbHVlIjoiMGVibm9aRDV4dmFnN21JT1FJZDQ3S0tmNEtEL3FVSjZ0TUtldHNZUU9uOGVzTXgyTGxmU" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6InVkbEtzN0xLdnFIcG9acUdGSmdxTlE9PSIsInZhbHVlIjoiaUVsWmpBTmNnUHh0MHFmdFVtaENNanJxSGRuQkY4VGlEb0Fabk01bm1pUlpjcW9rS1VrM2RFM2pJeFd0ZWdWd2E3ZlZ2dzB1Q09nZGpjVGpnOTNBbmRvT3NNanpYUnc0Yzc1YW1XV0JHcUdNMVNlZERVVmpxclBLSVhqRjFYTXMiLCJtYWMiOiI3ZmFiMTY1YjA0MjU1YjE0NWZmYmRhNWQxYzY0MmI5NTdiYmRkY2E3ZGNjMTQzYzYzMTBiZGNhYzBkY2UyY2Q1In0%3D; expires=Fri, 04-Apr-2025 03:34:21 GMT; path=/XSRF-TOKEN=eyJpdiI6InVkbEtzN0xLdnFIcG9acUdGSmdxTlE9PSIsInZhbHVlIjoiaUVsWmpBTmNnUHh0MHFmdFVtaENNanJxSGRuQkY4VGlEb0Fabk01bm1pUlpjcW9rS1VrM2RFM2pJeFd0ZWdWd2E3ZlZ2d" 1 => "DWa976077ab53ea1a0f12b663e732b73c0=eyJpdiI6InduemJ3eU9WSkRJMFJGT1JXVlpBY2c9PSIsInZhbHVlIjoiMGVibm9aRDV4dmFnN21JT1FJZDQ3S0tmNEtEL3FVSjZ0TUtldHNZUU9uOGVzTXgyTGxmUHYvRStEM1BXVjdKNSIsIm1hYyI6IjFlMjRlODhlZWVjYjE3NGMyNjcxMTUzMDYwODhmNzBjODgyNWM1Yzg4NDVmMjAzYTk1OTZmM2JkODc5M2JlNjgifQ%3D%3D; expires=Fri, 04-Apr-2025 01:33:20 GMT; path=/; httponlyDWa976077ab53ea1a0f12b663e732b73c0=eyJpdiI6InduemJ3eU9WSkRJMFJGT1JXVlpBY2c9PSIsInZhbHVlIjoiMGVibm9aRDV4dmFnN21JT1FJZDQ3S0tmNEtEL3FVSjZ0TUtldHNZUU9uOGVzTXgyTGxmU" ] ]
          session_attributes
          0 of 0
          array:3 [ "_token" => "JcDaamVSIeYEchxg7wpYAtLGqRbSWhIhtkclbSoX" "page" => array:1 [ "count" => -1 ] "PHPDEBUGBAR_STACK_DATA" => [] ]