我知道一些HTML,PHP,CSS和MySQL。我还没有掌握的东西是框架。我正在尽全力去了解他们是什么以及他们做了什么,但是对于我而言,我无法理解它。什么是框架?什么是教义2?
请有人可以用简单的方法解释框架和Doctrine 2,因为我不知道从哪里开始,但注意到它们当然是必需的。
我知道一些HTML,PHP,CSS和MySQL。我还没有掌握的东西是框架。我正在尽全力去了解他们是什么以及他们做了什么,但是对于我而言,我无法理解它。什么是框架?什么是教义2?
请有人可以用简单的方法解释框架和Doctrine 2,因为我不知道从哪里开始,但注意到它们当然是必需的。
我可以在这里告诉你一个框架是什么,但下面的链接描述它: What is a software framework?
主义是对象关系映射器。它基本上允许您在关系数据库中插入/更新/选择/删除对象,或通过类生成/更新表格。
让我们假设一个简单的成员表(我不能发表图片)
ID |名称|电子邮件|年龄
http://i.stack.imgur.com/V443D.png
通常情况下,你会写一个查询,例如,插入表中的东西。如:
INSERT INTO member VALUES ('Andy', '[email protected]', 30);
什么的ORM允许你这样做,是插入一个映射对象到表中。表格中的值将与通常通过查询插入它们的方式一样。 让我们来看看学说的一个非常简单的例子,在Symfony2的框架:
namespace ExampleProject\MemberBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Member
* @ORM\Table()
* @ORM\Entity
*/
class Member {
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255)
*/
private $name;
/**
* @var string
*
* @ORM\Column(name="email", type="string", length=255)
*/
private $email;
/**
* @var string
*
* @ORM\Column(name="age", type="integer", length=3)
*/
private $age;
/* getters and setters here */
}
上述类映射(标),并介绍哪些部分将被视为在数据库列。简单地说:映射的类中的变量将作为数据库中的列显示。你可以告诉我的映射这些变量,你想要列的数据类型(字符串/整数等)这个类代表我们的成员表(上图)。
现在在我的代码中,我可以调用doctrine实体管理器。我们可以创建一个新的成员对象,启动变量(姓名,电子邮件,年龄),并把它保存到数据库中:
$em = $this->getDoctrine()->getEntityManager();
$member = new Member;
$member->setId($id);
$member->setName($name);
$member->setEmail($email);
$member->setAge($age);
$em->persist($member);
$em->flush();
正如你所看到的,我们需要做的是保存对象在数据库中。它会给我们执行上面提到的查询相同的结果。 现在在后台,ORM还执行查询。您可以启用一个可以查看执行的实际查询的设置。
现在,这可能看起来很不必要,很多工作。但它会为你节省很多时间。它更加面向对象,您将能够比不使用ORM更好地维护您的(中/大)应用程序。
参考这个答案:http://stackoverflow.com/questions/4507506/what-is-a-web-framework-how-does-it-compare-with-lamp – mcw
学说是一个[对象关系映射器](https://duckduckgo.com/?q=object+relational+mapper) - 如果你在网上搜索这个词,你会发现你在做什么。 – halfer
框架是可以在项目中使用的预先编写的代码。 – iCode