session yii2

I have this code in my webapplication develop with yii 1.x, i would change this code for yii2




if(isset($_SESSION["cart_products"])){  //if session var already exist

            if(isset($_SESSION["cart_products"][$new_product['product_code']])) //check item exist in products array

            {

                unset($_SESSION["cart_products"][$new_product['product_code']]); //unset old array item

            }           

        }

        $_SESSION["cart_products"][$new_product['product_code']] = $new_product; //update or create product session with new item  



Check this doc:

i have crrected my code, butm another error in this line: $session[‘cart_products’][$new_product[‘product_code’]] = $new_product;

the error is: Indirect modification of overloaded element of yii\web\Session has no effect




    $connection = \Yii::$app->db;

    $session = Yii::$app->session;

  




    //add product to session or create new one

    if(isset($_POST["type"]) && $_POST["type"]=='add' && $_POST["product_qty"]>0)

    {

        foreach($_POST as $key => $value){ //add all post vars to new_product array

            $new_product[$key] = filter_var($value, FILTER_SANITIZE_STRING);

        }

        //remove unecessary vars

        unset($new_product['type']);

        unset($new_product['return_url']); 

        

        


       

  // $result= Yii::app()->db->createCommand('SELECT product_name, price FROM products WHERE product_code = :category')->bindValue('category',$_POST["product_code"])->queryAll();


   $user = $connection

    ->createCommand('SELECT product_name, price FROM products WHERE product_code = :category');

    $user->bindValue(':category', $_POST["product_code"]);

    $result = $user->query();


    $rs0=array();

    foreach ($result as $item0) {

        

        

        //fetch product name, price from db and add to new_product array

        $new_product["product_name"] = $rs0[]=$item0['product_name']; 

        $new_product["product_price"] = $rs0[]=$item0['price'];

      





        

        if(isset($session['cart_products'])){  //if session var already exist

            if(isset($session['cart_products'][$new_product['product_code']])) //check item exist in products array

            print_r($session['cart_products']);

            {

                unset($session['cart_products'][$new_product['product_code']]); //unset old array item

            }           

        }

        $session['cart_products'][$new_product['product_code']] = $new_product; //update or create product session with new item  


        

    } 

}




//update or remove items 

if(isset($_POST["product_qty"]) || isset($_POST["remove_code"]))

{

    //update item quantity in product session

    if(isset($_POST["product_qty"]) && is_array($_POST["product_qty"])){

        foreach($_POST["product_qty"] as $key => $value){

            if(is_numeric($value)){

                $session["cart_products"][$key]["product_qty"] = $value;

            }

        }

    }

    //remove an item from product session

    if(isset($_POST["remove_code"]) && is_array($_POST["remove_code"])){

        foreach($_POST["remove_code"] as $key){

            unset($session["cart_products"][$key]);

        }   

    }

}





//return $this->redirect('index',302);

//back to return url

$return_url = (isset($_POST["return_url"]))?urldecode($_POST["return_url"]):''; //return url

header('Location:'.$return_url);

//header('Location:'.$return_url);




    }