📜 ⬆️ ⬇️

Implementing States for a Web Application

There was such a problem. For different sections of the web application, it was necessary to store the state of the parameter sets. No need to go far: values ​​in session or cookies. But the management of values ​​was improved by the fact that when leaving the section, the states should have been lost.

There is nothing particularly fint in the example. Just a helper of three functions: one sets the state of the parameter, one returns, one resets. Values ​​are stored in the session.
The main idea is that the controller name is also stored in the session, and when accessing the state, the name of the “last” controller and “active” is checked. If they match, we return the state. If not, set the default values ​​of the states and return the default values.

This scheme allows you to:


  1. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  2. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  3. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  4. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  5. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  6. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  7. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  8. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  9. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  10. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  11. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  12. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  13. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  14. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  15. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  16. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  17. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  18. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  19. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  20. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  21. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  22. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  23. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  24. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  25. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  26. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  27. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  28. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  29. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  30. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  31. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  32. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  33. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  34. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  35. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  36. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  37. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  38. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  39. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }
  40. class cnd_Core
    {
    public static function get($cnd_name)
    { //
    if(Session::instance()->get('cnd_controller') != Router::$controller)
    { // -
    Session::instance()->set('cnd_controller', Router::$controller);
    switch (Session::instance()->get('cnd_controller'))
    {
    case 'razdel1':
    Session::instance()->set('razdel1_value1', 0);
    Session::instance()->set('razdel1_value2', 0);
    break;
    case 'razdel2':
    Session::instance()->set('razdel2_value1', 0);
    Session::instance()->set('razdel2_value2', 0);
    break;
    case 'razdel3':
    Session::instance()->set('razdel3_value1', 0);
    Session::instance()->set('razdel3_value2', 0);
    break;
    }
    }

    // , , NULL
    $v = Session::instance()->get($cnd_name, NULL);
    return $v;
    }

    public static function set($cnd_name, $cnd_val)
    { //
    Session::instance()->set($cnd_name, $cnd_val);
    }

    public static function drop()
    { //
    Session::instance()->set('cnd_controller',"");
    cnd::get("");
    }
    }


')
Still probably worth adding this.
In order for the states to be true, you need to call
cnd::get("");


put in the base constructor for all controller controllers.
This will ensure that when entering the new controller (and this is in fact the way out of the old one), all non-default states will be reset. Exactly what was required. And any new state will be stored in the session until the first exit from the controller.

Source: https://habr.com/ru/post/56665/


All Articles