YII 2.0已发布到Beta,首次稳定版本的目标设定为2014年中期。Github问题列表列表有300个公开问题,而我写这篇文章的同时2913次关闭,并且两个数字仍在增加。 2.0RC里程碑的进度为99%。我的猜测是团队很接近,但是我们可能必须等待更长的时间。当我们都在等待时,让我们看看一个已经可以使用的示例,看看我们可以期望的。
钥匙要点>使用名称空间和特征的用法将要求提高到PHP 5.4。此外,当您开始开发时,您还需要MB_STRING,PDO和INTL扩展。如果您运行自己的服务器,这应该不是问题,但是如果您在共享环境下,则可能是问题。当然,随着该问题的及时,该问题将消失。
>>安装
现在可以从作曲家安装当前,有两个申请示例可用。有一个基本示例,其中包含几页,联系页面和登录页面。高级示例添加了一个单独的前端和后端,数据库交互,注册和密码恢复。
入门WebApp。使用以下命令将基本示例与作曲家一起安装:>
然后,您可以通过打开http://localhost/yii2-app-basic/requirements.php来检查服务器是否满足您的需求。然后,实际应用程序将从http:// localhost/yii2-app-basic/web/运行。composer.phar create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic
这是要注意的第一个重要的事情:想法是,您将应用程序的词根设置为/path/to/to/to/application/web,就像与Symfony一样。目录布局从版本1.1改变了一点。如果仔细观察,更改将是有道理的,并将提高应用程序的安全性。
以前,所有应用程序组件(模型,视图,控制器,框架和供应商库)都将生活在受保护文件夹中的文档根下。这样,安全性取决于要尊重的.htaccess文件,这意味着您的应用程序默认情况下的应用程序是100%不安全的。将所有应用程序组件从文档根中移开,从而阻止Web服务器将应用程序组件发送给用户。>
>您可能会发现自己正在寻找实际的框架来源。该框架是使用作曲家安装的组件,因此它将位于Vendoryiisoftyii目录下。在这里,您会发现更多,但是现在,我们将其留下。>目前,让我们更改本地Web服务器配置,然后将文档root设置为/路径/到/application/web。我添加了一个VirtualHost http://yii2-app-basic.localhost/,但您认为适合自己的情况。默认配置设置为将脚本文件隐藏在URL中。如果您使用的是Apache,则需要在Web目录中添加.htaccess文件才能指示Apache进行重写,默认情况下不存在。
>查看基本YII应用程序
>现在我们已经运行了基本应用程序,有些祝贺...
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php
谢谢!到目前为止,还没有火箭科学。
>您将从开始页面,关于页面的静态页面,联系页面和登录页面开始。联系页面和登录表具有与以前相同的功能; CAPTCHA代码,表单验证和两个可用于登录的用户。登录与以前相同;几乎一无所有。尽管如此,这还是一个很好的开始。
基本应用程序的设计发生了巨大变化。以前,您将获得一个基于蓝图CSS框架的应用程序,而现在我们从Twitter Bootstrap开始。改进?它可能与蓝图进行了比较,但是Bootstrap又比蓝图尝试过的要多得多。
Bootstrap将为您提供各种应用程序组件,并将加快构建应用程序。另一方面,有些人可能会争辩说所有站点都与Bootstrap看起来都一样(主题仅部分修复),这也将使您的站点更大的尺寸。无论哪种方式,使用YII 2.0的集成都使用YII2-Bootstrap扩展程序完成。这使得将Bootstrap组件集成在您的视图中非常容易。
>
>
GII将通过生成供您开始的代码来帮助您,这是另一种有助于加快开发的好工具。它将为您生成模型和控制器。 CRUD生成器将进一步走一步,并为所有操作生成完整的MVC集。 GII还将通过立即插入yii :: t()函数在需要它的地方生成更适合国际化的代码(I18N)。
>基本应用程序现在还带有一个简单的命令行应用程序,您可以在基础上构建。 yii 1.1已经支持了这一点,但是您必须从Wiki中获得一个示例。
这就是您在基本应用程序中找到的。还有一个可用的高级应用程序示例。它的结构有些不同,但可以为您的应用程序添加更多功能:>
>用户授权,身份验证和密码还原。 一个应用程序分为前端和后端。
发生了很多变化。一开始可能会使您感到困惑,但是我发现大多数更改很有意义,而且易于接受。这是我发现有趣,有趣或令人困惑的一些变化。
> PHP 5.4要求使一些更改成为可能;阵列短标签可用。在视图中使用Echo简短标签也是安全的,因为这不再取决于配置设置。
composer.phar create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic
>翻译函数yii :: t()仍然与我们同在。它指示YII使用I18N组件将提供的文本转换为当前使用的语言。您也可以指示它替换变量。
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php
由于这种占位符格式,dateTimeFormatter消失了:
<span><span><?php </span></span><span><span>$elements = array(1,2,3,4); //Yii 1.1 </span></span><span><span>$elements = [1,2,3,4]; //Yii 2.0 </span></span><span><span>?></span> </span><span><span><?php echo $someVar; ?></span> //Yii 1.1 </span><span><span><?= $someVar ?></span> //always safe to use in Yii 2.0</span>
>此功能由ICU库提供。 YII文档称其为原始文档:“非常神秘”。我敢您阅读它并尝试理解它……希望YII文档及时包含一个更可读的版本。
控制器<span><span><?php </span></span><span><span>echo `Yii<span>::</span>t('app', 'Hello, {username}!', [ </span></span><span> <span>'username' => $username, </span></span><span><span>]); </span></span><span><span>?></span></span>
>之前,如果您想使用YII访问控制功能,则AccessControl()将是控制器的函数。使用YII 2.0,访问控制是控制器行为的一部分():
>>我确实注意到示例代码(不是框架本身!)缺少许多放映,并且有很多@InHeritDoc的评论。这不是您从一个示例中期望的,但我认为这将是及时固定的。
><span><span><?php </span></span><span><span>echo <span>\Yii</span>::t('app', '{n, number} is spelled as {n, spellout}', ['n' => 81]); </span></span><span><span>echo <span>\Yii</span>::t('app', 'You are {n, ordinal} in line, please hold.', ['n' => 3]); //Will echo "You are 3rd in line, please wait.". </span></span><span><span>echo <span>\Yii</span>::t('app', 'There {n, plural, =0{are no cats} =1{is one cat} other{are # cats}}!', array( </span></span><span> <span>'n' => 14, </span></span><span><span>)); </span></span><span><span>?></span></span>
基本模型(以前的CModel)并没有太大变化。现在,方案允许您更改验证规则的执行。您可以根据当前场景更改需要验证的需要(即,在前端或后端使用时具有不同规则的模型)。
> 不过,
派生的Activerecord经历了一些严重的变化。使用ActivereCord进行搜索的语法更像是编写查询,因为CDBCriteria已经消失了。它已被ActiveQuery替换为使检索信息更容易:composer.phar create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic
>您现在有两个选择来定义此问题;通常,您会在关系函数中使用Via()方法。如果仅需要枢轴表之后的表中的数据,则还可以使用Viatable()方法来定义关系。与上面的示例相同,但现在适用于yii 2.0:
>
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php
视图
正如我之前所说的
>; PHP 5.4使短回声标签始终可用。这使得由混合PHP和HTML组成的视图更可读;渲染()和renderpartial()函数也更改。在它会自动回声之前,您必须添加一个附加参数才能使渲染的输出作为字符串。 yii 2.0将始终返回render()上的字符串 - 就像呼叫一样,使其与小部件的行为方式更加一致。
<span><span><?php </span></span><span><span>$elements = array(1,2,3,4); //Yii 1.1 </span></span><span><span>$elements = [1,2,3,4]; //Yii 2.0 </span></span><span><span>?></span> </span><span><span><?php echo $someVar; ?></span> //Yii 1.1 </span><span><span><?= $someVar ?></span> //always safe to use in Yii 2.0</span>
>从yii 1.1
升级>有一个特别页面,专门用于在YII网站上升级YII。目前,最大的问题是您的扩展。如果您依靠很多扩展名,您将很难做到,因为社区需要花费一些时间来编写YII 2.0的扩展名。如果您是真正的专业人士,那么您当然可以认真看一下您使用的扩展名,并考虑(重新)写它们。
迁移手册在应用程序中有一个关于运行YII 1.1和YII 2.0的部分。对于大型项目,这是创建安全迁移路径的好方法。将您的通用代码迁移到YII 2.0,并花点时间在更复杂或填充的零件上。
结论YII 2.0的文档质量从yii 1.1提高了。几年前,当我从YII 1.1开始时,我很难弄清楚东西,我觉得该文档比以前更为广泛。
>您是否已经看过YII 2.0,甚至已经使用了一些东西了?请告诉我们您遇到了什么。我很想知道你的经历!经常询问有关yii 2.0
的问题 与以前的版本相比,YII 2.0中有哪些新功能是什么?
yii 2.0调试器是什么,它如何工作?
>如何使用第三方扩展程序扩展yii 2.0?
yii 2.0支持使用第三方扩展,可以使用Composer软件包管理器安装。安装后,您可以像YII的内置功能一样使用这些扩展名。 YII社区已经开发了广泛的扩展名,可提供其他功能,例如用户身份验证,表单验证和数据库抽象。> yii 2.0如何支持静止的API开发?
>
> yii 2.0如何处理用户身份验证?yii 2.0提供了灵活的用户身份验证系统。它支持传统的用户名/密码身份验证和更现代的方法(例如Oauth和OpenID)。您还可以扩展内置的用户模型以添加自己的身份验证方法。
>
>如何测试我的yii 2.0应用程序?yii 2.0提供了测试框架基于Phpunit和硒。它支持单位测试和功能测试。您可以编写测试用例以测试模型,视图和控制器。测试框架还提供了模拟用户输入并检查输出的方法。
以上是YII 2.0的期望的详细内容。更多信息请关注PHP中文网其他相关文章!