Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP web应用程序中,各种类如何相互交互?_Php_Oop_Symfony - Fatal编程技术网

在PHP web应用程序中,各种类如何相互交互?

在PHP web应用程序中,各种类如何相互交互?,php,oop,symfony,Php,Oop,Symfony,我是OOP新手,正在学习symfony2。 这是我第一次体验OOP 到目前为止,我只创建了实体类和CRUD控制器 但我还没有创建自己的类 假设我有classUser,ShoppingCart和Product Class User { $shoppingCart } 现在添加和删除产品就可以了 但我想知道,若用户点击产品添加到购物车会发生什么 我想知道我需要创建哪些方法才能将产品添加到购物车中,以及各个类应该如何进行交互,据我所知,这是一种在纯php中实现所需功能的方法 <?ph

我是OOP新手,正在学习symfony2。 这是我第一次体验OOP

到目前为止,我只创建了实体类和CRUD控制器

但我还没有创建自己的类

假设我有class
User
ShoppingCart
Product

Class User {
    $shoppingCart
}

现在添加和删除产品就可以了

但我想知道,若用户点击产品添加到购物车会发生什么


我想知道我需要创建哪些方法才能将产品添加到购物车中,以及各个类应该如何进行交互,据我所知,这是一种在纯php中实现所需功能的方法

<?php   
class User {
     public $cart;
     public function __construct()
     {
        $this->cart = new Cart;
     }
}
class Cart {
   protected $products = array();
   public function __construct()
   {

   }
   public function addProduct(Product $product)
   {
       $this->products[] = $product;
   }
}
class Product
{
  //TODO DEFINE PRODUCT CLASS METHODS AND PROPERTIES
}

据我所知,这是一种在纯php中实现目标的方法

<?php   
class User {
     public $cart;
     public function __construct()
     {
        $this->cart = new Cart;
     }
}
class Cart {
   protected $products = array();
   public function __construct()
   {

   }
   public function addProduct(Product $product)
   {
       $this->products[] = $product;
   }
}
class Product
{
  //TODO DEFINE PRODUCT CLASS METHODS AND PROPERTIES
}

你能详细说明一下你的问题吗,目前没有什么意义。虽然我确实觉得你有一个突出的问题要问,但我无法编辑我的帖子。但我想知道,当我们以面向对象的方式单击“将产品添加到购物车”时,幕后会发生什么?您想知道将项目添加到购物车的方法是什么样的吗?如果您使用symfony,并且这些类表示数据库实体,那么它们应该是doctrine实体。在这种情况下,您可以让条令为这些类之间的交互生成方法。你通常应该有(在ShoppingCart上)addProduct(Product$Product)、removeProduct(Product$Product)和setProducts(array$products)。你能详细说明你的问题吗,目前没有什么意义。虽然我确实觉得你有一个突出的问题要问,但我无法编辑我的帖子。但我想知道,当我们以面向对象的方式单击“将产品添加到购物车”时,幕后会发生什么?您想知道将项目添加到购物车的方法是什么样的吗?如果您使用symfony,并且这些类表示数据库实体,那么它们应该是doctrine实体。在这种情况下,您可以让条令为这些类之间的交互生成方法。通常(在ShoppingCart上)应该有addProduct(Product$Product)、removeProduct(Product$Product)和setProducts(array$products)。但是OP似乎对OOP失去了总体认识,所以这可能会对他有所帮助。为此,我想知道当我点击add product时,我需要在我的控制器lke addAction()中创建函数并提供用于添加的urlproduct@user1504143创建addProduct方法有多种方法。这取决于您希望如何将信息发送回服务器,您可以通过AJAX调用或传统的回发来完成。我编辑了一些内容,虽然这不是Symfony 2中的实际操作方式,当我们试图避免引入隐式依赖时。但是OP似乎对OOP失去了总体认识,所以这可能会对他有所帮助。为此,我想知道当我点击add product时,我需要在我的控制器lke addAction()中创建函数并提供用于添加的urlproduct@user1504143创建addProduct方法有多种方法。这取决于您希望如何将信息发送回服务器,您可以通过AJAX调用或传统的回发来完成。
<?php

//Include class files into the script
require_once $_SERVER["DOCUMENT_ROOT"] . "PATH/TO/CLASS/DIR/FROM/SERVER/ROOT";

//create $product object and set properties from form post

$user = new User();
$user->cart->addProduct($product);