)框架。当时,可用的最新版本为1.1.14。最近,YII 2.0可用,因此您可以开始在生产中使用它。
> yii 2框架很容易安装,使用Composer处理的直接安装和配置过程节省了开发人员的时间。
2。利用现代技术
YII是一个纯粹的OOP框架,并利用了PHP的一些更高级功能,包括晚期静态绑定,SPL类和接口和匿名功能。
>所有类都是命名的,这使您可以利用其兼容PSR-4的自动加载器。这意味着,包括YII的HTML助手类包括:>
> yii还允许您定义别名以帮助简化您的名称空间。在上面的示例中,该使用语句将加载一个类定义,该类别默认位于目录/供应商/yiisoft/yii2/helpers中。 该别名在第79行的基本级课程中定义<span>use yii<span>\helpers\Html</span>;</span>
>框架本身是使用作曲家以及其扩展名安装的。甚至发布扩展的过程也很容易,就像创建自己的作曲家。
3。高度扩展首先,我将在我的appComponents目录中创建一个使用name viev.php的文件,然后添加以下内容:
>然后,在我的主布局文件(appviewslayoutsmain.php)中,我将以下内容添加到我的html的主体标签中:
<span>public static $aliases = ['@yii' => __DIR__];</span>
>最后,我将以下内容添加到我的主要配置文件中,以便让yii知道使用我的扩展视图类,而不是其自己的默认值:
<span>namespace app<span>\components</span>; </span> <span>class View extends yii<span>\web\View</span> { </span> <span>public $bodyId; </span> <span>/* Yii allows you to add magic getter methods by prefacing method names with "get" */ </span> <span>public function getBodyIdAttribute() { </span> <span>return ($this->bodyId != '') ? '' : ''; </span> <span>} </span> <span>}</span>
4。鼓励测试
<span><span><span><body</span> <span><span><?=$this->BodyIdAttribute?></span></span>></span></span>
使用此配置,以下情况将发生:
<span>return [ </span> <span>// ... </span> <span>'components' => [ </span> <span>// ... </span> <span>'view' => [ </span> <span>'class' => 'app\components\View' </span> <span>] </span> <span>] </span><span>];</span>
测试中的URL将采用格式index.php/Controller/Action而不是/Controller/Action
YII带有一个安全应用程序组件,该组件揭示了几种方法,以帮助创建更安全的应用程序。一些更有用的方法是:
>
为了保护XSS,YII提供了另一个称为HTMLPurifier的帮助者类。该类具有一个名为“进程”的单个静态方法,并将使用同名流行的过滤器库过滤您的输出。<span>use yii<span>\helpers\Html</span>;</span>
yii还包括用于用户身份验证和授权的现成类。授权分为两种类型:ACF(访问控制过滤器)和RBAC(基于角色的访问控制)。
两者的简单是ACF,可以通过在控制器的行为方法中添加以下以下方法来实现:
>前面的代码告诉DefaultControllerTo允许访客用户访问登录名并查看操作,但不能访问Create Action。 (?是针对匿名用户的别名, @是指身份验证的用户)。
> RBAC是一种更强大的方法,可以指定用户可以在整个应用程序中执行特定操作。它涉及为您的用户创建角色,为您的应用程序定义权限,然后为其预期的角色启用这些权限。如果您想创建主持人角色,并且允许分配给此角色的所有用户批准文章,则可以使用此方法。<span>public static $aliases = ['@yii' => __DIR__];</span>
>您还可以使用RBAC定义规则,RBAC允许您在特定条件下授予对应用程序某些方面的访问权限。例如,您可以创建一个规则,该规则允许用户编辑自己的文章,而不是由他人创建的文章。
6。缩短开发时间大多数项目都涉及一定数量的重复任务,这些任务没有人浪费时间。 YII为我们提供了一些工具,可以帮助您更少的时间在这些任务上,并有更多的时间自定义您的应用程序以适应客户的需求。
这些工具中最强大的工具之一称为“ GII”。 GII是一种基于Web的代码脚手架工具,它允许您快速创建代码模板:
控制器
表格
<span>use yii<span>\helpers\Html</span>;</span>
这可以确保GII只有在将YII环境变量设置为>开发>时才加载,并且只有在通过Localhost访问时才加载。
现在让我们看一下模型生成器:
>还有几种命令行工具可帮助创建用于数据库迁移,消息翻译(I18N)和数据库固定装置的代码模板,以进行自动测试。例如,您可以使用此命令创建一个新的数据库迁移文件:
这将在{appdir}/迁移中创建一个新的迁移模板,该模板看起来像这样:
><span>public static $aliases = ['@yii' => __DIR__];</span>
>所以我想在此表中添加几列。我只需将以下内容添加到UP方法:
><span>namespace app<span>\components</span>; </span> <span>class View extends yii<span>\web\View</span> { </span> <span>public $bodyId; </span> <span>/* Yii allows you to add magic getter methods by prefacing method names with "get" */ </span> <span>public function getBodyIdAttribute() { </span> <span>return ($this->bodyId != '') ? '' : ''; </span> <span>} </span> <span>}</span>
,然后确保我可以扭转迁移,我将编辑下调方法:
<span><span><span><body</span> <span><span><?=$this->BodyIdAttribute?></span></span>></span></span>
并删除表:
<span>return [ </span> <span>// ... </span> <span>'components' => [ </span> <span>// ... </span> <span>'view' => [ </span> <span>'class' => 'app\components\View' </span> <span>] </span> <span>] </span><span>];</span>
7。易于调整以获得更好的性能
<span>return [ </span> <span>'components' => [ </span> <span>'mail' => [ </span> <span>'useFileTransport' => true, </span> <span>], </span> <span>'urlManager' => [ </span> <span>'showScriptName' => true, </span> <span>], </span> <span>'db' => [ </span> <span>'dsn' => 'mysql:host=localhost;dbname=mysqldb_test', </span> <span>], </span> <span>], </span><span>];</span>
>每个人都知道一个慢速的网站会创建不满的用户,因此yii为您提供了几种工具,可以帮助您挤出更快的速度。
<span>$I->amOnPage('register'); </span><span>$I->fillField('username', 'testuser'); </span><span>$I->fillField('password', 'qwerty'); </span><span>$I->click('Register'); </span><span>$I->seeRecord('app\models\User', array('name' => 'testuser'));</span>
>最后,YII有一个命令行工具来促进前端资产的缩小。只需运行以下命令即可生成配置模板:
然后编辑配置以指定您要执行的缩小工具(例如,闭合编译器,YUI压缩机或uglifyjs)。生成的配置模板将看起来像这样:
><span>return [ </span> <span>'components' => [ </span> <span>'request' => [ </span> <span>'enableCsrfValidation' => false, </span> <span>] </span> <span>];</span>
接下来,运行此控制台命令以执行压缩。
<span>use yii<span>\filters\AccessControl</span>; </span> <span>class DefaultController extends Controller { </span> <span>// ... </span> <span>public function behaviors() { </span> <span>return [ </span> <span>// ... </span> <span>'class' => AccessControl<span>::</span>className(), </span> <span>'only' => ['create', 'login', 'view'], </span> <span>'rules' => [ </span> <span>[ </span> <span>'allow' => true, </span> <span>'actions' => ['login', 'view'], </span> <span>'roles' => ['?'] </span> <span>], </span> <span>[ </span> <span>'allow' => true, </span> <span>'actions' => ['create'], </span> <span>'roles' => ['@'] </span> <span>] </span> <span>] </span> <span>]; </span> <span>} </span> <span>// ... </span><span>}</span>
>最后,编辑您的Web应用程序配置文件以使用压缩资产。
<span>if (YII_ENV_DEV) { </span> <span>// ... </span> <span>$config['modules']['gii'] = [ </span> <span>'class' => 'yii\gii\Module', </span> <span>'allowedIPs' => ['127.0.0.1', '::1'] </span> <span>] </span><span>}</span>
注意:
>您必须手动下载并安装这些外部工具。yii migrate<span>/create create_user_table</span>
>像任何好的框架一样,yii可以帮助您快速创建现代的Web应用程序,并确保它们的表现良好。它推动您通过为您做很多繁重的举重来创建安全和可测试的站点。您可以完全按照提供的方式轻松地使用其大多数功能,也可以修改每个功能以满足您的需求。我真的鼓励您检查一下您的下一个网络项目!
您尝试过yii 2吗?你会?让我们知道!
yii 2框架被认为是高度扩展的,因为它允许开发人员自定义核心代码的几乎每个部分。这意味着,如果开发人员需要调整框架处理某些任务的方式,则可以执行此操作,而无需直接修改核心代码。这是一个重要的优势,因为它允许具有高度的灵活性和适应性,因此更容易量身定制框架以满足特定的项目要求。
yii 2框架如何支持快速开发?
我可以使用yii 2 Framework使用第三方代码吗?旨在与第三方代码无缝合作。它使用Composer Dependenty Manager,这使得将第三方库和软件包集成到您的YII 2应用程序中变得易于。
>YII 2框架为国际化(I18N)提供了广泛的支持。它包括日期和时间格式,数字格式和消息翻译的功能,使为全球受众开发应用程序变得更加容易。
> yii 2框架如何与其他PHP框架进行比较?
以上是选择YII 2框架的7个理由的详细内容。更多信息请关注PHP中文网其他相关文章!