YII 2.0已发布到Beta,首次稳定版本的目标设定为2014年中期。Github问题列表列表有300个公开问题,而我写这篇文章的同时2913次关闭,并且两个数字仍在增加。 2.0RC里程碑的进度为99%。我的猜测是团队很接近,但是我们可能必须等待更长的时间。当我们都在等待时,让我们看看一个已经可以使用的示例,看看我们可以期望的。
钥匙要点- > YII 2.0引入了重大改进和更改,包括使用名称空间,特征和作曲家集成,增强其现代PHP框架功能。
- > YII 2.0需要PHP 5.4或更高的PHP,并利用了高级PHP功能,这可能会影响与较旧的服务器环境的兼容性,但最终提供了更健壮和安全的框架。
- >在2008年发行后,YII的第一个版本很快就变得很快。
- yii使用其他框架,语言和图书馆中的许多想法:Prado,Ruby,Jquery,Symfony和Joomla都被公认为是灵感的来源。 >
- > YII 2.0日期的第一个承诺可以追溯到2011年,但该开发项目是去年的。该团队进行了重写,目的是成为新一代PHP框架的最新状态。它采用了最新的技术和功能,例如作曲家,PSR,名称空间,特质等。 >值得一提的是,根据下载页YII版本1.1的支持将于2015年12月31日结束,因此我们确实有一些时间开始考虑进行过渡。
要求
>使用名称空间和特征的用法将要求提高到PHP 5.4。此外,当您开始开发时,您还需要MB_STRING,PDO和INTL扩展。如果您运行自己的服务器,这应该不是问题,但是如果您在共享环境下,则可能是问题。当然,随着该问题的及时,该问题将消失。
>>安装
现在可以从作曲家安装当前,有两个申请示例可用。有一个基本示例,其中包含几页,联系页面和登录页面。高级示例添加了一个单独的前端和后端,数据库交互,注册和密码恢复。
入门>我将从基本示例开始。如果您以前看过YII,则可以识别出YII 1.1随附的相同基本
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 :: app()访问应用程序实例及其组件。在yii 2.0中,这从静态函数变为静态变量yii :: $ app。占位符的格式和样式已经过认真的重新设计,可以提供更多格式的选项。一些示例: RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php
> <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></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></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></span>
>模型> 不过,
派生的Activerecord经历了一些严重的变化。使用ActivereCord进行搜索的语法更像是编写查询,因为CDBCriteria已经消失了。它已被ActiveQuery替换为使检索信息更容易:关系定义也发生了巨大变化。让我们以博客作者的身份以一个网站发布,以发布有关用户发表评论的文章的文章。作者表的关系定义如下所述。我将从yii 1.1中的外观开始
composer.phar create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic
如您所见,您将在大数组中定义主动记录的所有关系。在YII 2.0中,您必须定义Getter方法,该方法返回所有这些关系的ActiveQuery对象。 您必须使用“通过”关键字来定义中介表之间的关系。>
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php
这是一个相当简单的示例。通过返回ActiveQuery对象的GETTER函数定义关系允许更多。例如,您可以添加一个特定函数,该功能可以通过在返回的ActiveQuery中添加where()调用来获取> 50个注释的帖子。一个有趣的补充是定义交叉DBMS关系的可能性。您可以定义MySQL和MongoDB或Redis之间的关系,并将其用作一个对象。 正如我之前所说的
>; PHP 5.4使短回声标签始终可用。这使得由混合PHP和HTML组成的视图更可读;<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></span>
>>从yii 1.1
升级您是否应该考虑将YII 1.1申请升级到YII 2.0? Brunoškvorc最近在SitePoint上写了有关旧版代码的文章。他认为,如果您使用的软件至关重要,则应在2个月内进行重写 - 尤其是
>。我同意他的看法,建议您考虑一下您对应用程序感到认真,并希望在YII 1.1生命的尽头维护它。但是一如既往;这取决于您的情况。迁移手册在应用程序中有一个关于运行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,带有许多新功能和对其前身的改进。现在,它支持使用命名空间的使用,这使得代码组织变得更加容易。它还引入了一个更灵活和强大的新路由系统。已重新设计了ActiverEcord类,以支持更多数据库类型,包括NOSQL数据库。该框架还包括一个新的Restful API开发支持,使构建API变得更加易。此外,YII 2.0具有改进的安全功能,包括内置CSRF(跨站点请求伪造)保护。
>> yii 2.0如何处理国际化(I18N)?国际化(I18N)支持。它使您可以用不同的语言存储同一消息的多个翻译。您还可以根据语言环境格式化日期,数字和货币。 yii 2.0还支持基于上下文的复数形式和消息选择。
>yii 2.0调试器是什么,它如何工作?
yii 2.0调试器是一个强大的工具,可以帮助您进行调试。您的申请。它收集并显示有关您应用程序的每个请求的信息,包括执行的SQL查询,请求和响应数据以及性能正时数据。您可以通过应用程序页面底部的面板访问此信息。
>>如何使用第三方扩展程序扩展yii 2.0?
yii 2.0支持使用第三方扩展,可以使用Composer软件包管理器安装。安装后,您可以像YII的内置功能一样使用这些扩展名。 YII社区已经开发了广泛的扩展名,可提供其他功能,例如用户身份验证,表单验证和数据库抽象。> yii 2.0如何处理数据库迁移?
yii 2.0提供功能强大的数据库迁移工具,使您可以版本控制数据库更改。您可以使用yii迁移/创建命令创建一个新的迁移。迁移脚本将包含用于应用和重新迁移的方法。然后,您可以使用YII迁移/UP命令应用迁移。 > yii 2.0如何支持静止的API开发?
yii 2.0提供了一组工具来帮助您开发RESTFULE API。它包括对路由,请求处理,响应格式和错误处理的支持。您还可以使用ActiveController类来快速为您的API生成CRUD(创建,读取,更新,删除)操作。>
> yii 2.0如何处理用户身份验证?yii 2.0提供了灵活的用户身份验证系统。它支持传统的用户名/密码身份验证和更现代的方法(例如Oauth和OpenID)。您还可以扩展内置的用户模型以添加自己的身份验证方法。
> yii 2.0如何处理错误处理和日志记录?
yii 2.0提供了可靠的错误处理和记录系统。它可以捕获和处理PHP错误和异常。这些错误可以以不同的格式登录并发送到不同的目的地,例如文件,电子邮件和浏览器。>
>如何测试我的yii 2.0应用程序?yii 2.0提供了测试框架基于Phpunit和硒。它支持单位测试和功能测试。您可以编写测试用例以测试模型,视图和控制器。测试框架还提供了模拟用户输入并检查输出的方法。
>
以上是YII 2.0的期望的详细内容。更多信息请关注PHP中文网其他相关文章!

PHP仍然流行的原因是其易用性、灵活性和强大的生态系统。1)易用性和简单语法使其成为初学者的首选。2)与web开发紧密结合,处理HTTP请求和数据库交互出色。3)庞大的生态系统提供了丰富的工具和库。4)活跃的社区和开源性质使其适应新需求和技术趋势。

PHP和Python都是高层次的编程语言,广泛应用于Web开发、数据处理和自动化任务。1.PHP常用于构建动态网站和内容管理系统,而Python常用于构建Web框架和数据科学。2.PHP使用echo输出内容,Python使用print。3.两者都支持面向对象编程,但语法和关键字不同。4.PHP支持弱类型转换,Python则更严格。5.PHP性能优化包括使用OPcache和异步编程,Python则使用cProfile和异步编程。

PHP主要是过程式编程,但也支持面向对象编程(OOP);Python支持多种范式,包括OOP、函数式和过程式编程。PHP适合web开发,Python适用于多种应用,如数据分析和机器学习。

PHP起源于1994年,由RasmusLerdorf开发,最初用于跟踪网站访问者,逐渐演变为服务器端脚本语言,广泛应用于网页开发。Python由GuidovanRossum于1980年代末开发,1991年首次发布,强调代码可读性和简洁性,适用于科学计算、数据分析等领域。

PHP适合网页开发和快速原型开发,Python适用于数据科学和机器学习。1.PHP用于动态网页开发,语法简单,适合快速开发。2.Python语法简洁,适用于多领域,库生态系统强大。

PHP在现代化进程中仍然重要,因为它支持大量网站和应用,并通过框架适应开发需求。1.PHP7提升了性能并引入了新功能。2.现代框架如Laravel、Symfony和CodeIgniter简化开发,提高代码质量。3.性能优化和最佳实践进一步提升应用效率。

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

PHP类型提示提升代码质量和可读性。1)标量类型提示:自PHP7.0起,允许在函数参数中指定基本数据类型,如int、float等。2)返回类型提示:确保函数返回值类型的一致性。3)联合类型提示:自PHP8.0起,允许在函数参数或返回值中指定多个类型。4)可空类型提示:允许包含null值,处理可能返回空值的函数。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3汉化版
中文版,非常好用

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

记事本++7.3.1
好用且免费的代码编辑器