我们用了很长的篇幅在这一章描述内核中的HashTable结构以及PHP中的数组实现。在接下来的时间中,我们会在它的基础上学习一下内核是怎样实现与管理PHP语言中的资源与类的。
现在我们已经可以编写一个更真实的函数了,既可以接收用户传递过来的参数,也可以返回数据给调用者。为了写出高质量的代码,还需要我们多花点心思在zval的写时复制等特殊机制上,否则便会在接收参数和返回数据时留下一些bug。 下面的章节里,让我们去看一下PHP语言里强大的数组类型是如何在内核中实现的,去探究内核中的HashTable结构,从而能编写出更强大的PHP扩展。
在这一章里,我们集中讨论了如何把函数执行的结果返回给调用者,通过return语句、引用返回、通过参数返回等等,而且还初步了解了一下zend_arg_info。在下面的章节中,我们将去看一下内核是如何接收调用者传递的参数的。
在这一章里,我们学会了如何创建一个PHP框架并为其添加函数,并编译到PHP中供用户在PHP语言中调用。在接下来的章节里,我们将陆续看到许多高级的PHP内核特性,从而使我们编写出更好的PHP扩展。 编译PHP源码的环境会随着平台与时间的不同而变化,如果本章讲述的知识无法使你顺利的编译PHP,那你可以给我发信,或者去php.net寻找答案,当然最简单的方法是Google,切记的是,万一Google抽风
单就开发一个最基本的php扩展来说,该掌握的前置知识我们已经都掌握了。在接下来的章节里我们将会深入的研究如何制作一个PHP扩展,以及制作一个优秀的PHP扩展所需的其它知识。 此外,如果你只想把PHP当作一个嵌入式应用来使用,我们也强烈的建议你不要直接跳到最后几章,因为在接下来的章节里我们将详细的介绍与PHP内核密切相关的一些内容,比如HashTable、数组、对象......等等的实现方式与应用方
PHP是一种解释型的语言,对于用户而言,我们精心的控制内存意味着easier prototyping和更少的崩溃!当我们深入到内核之后,所有的安全防线都已经被越过,最终还是要依赖于真正有责任心的软件工程师来保证系统的稳定运行。
在这一章我们了解了php变量在内核中是如何实现的,我们已经可以识别出一个变量的类型,把它加到符号表去或者从符号表中找出等等等等。在下一章我们的目光开始转向内存,顺道研究下怎样复制已经存在的zval,以及如何在它们没用的时候及时的清理掉,还有最重要的,怎么不使用copy,而使用引用! 我们已经了解到zend引擎中针对一个请求的内存管理层,了解了常驻内存与非常驻内存的概念与区别。在读完下一章后,我们便
这一章讲述了一些后续章节需要的基础概念,是你编写优质的PHP扩展的基础。
实现了动态流后,本书的演示应用就开发完了。这个应用演示了 Rails 的全部重要功能,包括模型、视图、控制器、模板、局部视图、过滤器、数据验证、回调、has_many/belongs_to 关联、has_many :through 关联、安全、测试和部署。 除此之外,Rails 还有很多功能值得我们学习。下面提供了一些后续学习资源,可在以后的学习中优先使用。 12.4.1 后续的学习资源 商店和网
实现微博资源后,我们的演示应用基本上完成了。现在还剩下社交功能没有实现,即让用户之间可以相互关注。在第 12 章,我们会学习如何实现用户之间的这种关系,还要实现一个真正的动态流。 如果你跳过了 11.4.4 节,在继续之前,先提交改动,然后再合并到 master 分支: $ bundle exec rake test $ git add -A $ git commit -m "Add user m
实现账户激活和密码重设功能后,我们的演示应用已经完整实现了“注册-登录-退出”机制,而且是专业级的。本书剩下的章节以此为基础,实现类似 Twitter 的微博(第 11 章)和所关注用户发布的微博列表(第 12 章)。在实现的过程中,我们会学到一些 Rails 提供的强大功能,例如使用 has_many 和 has_many :through 实现的高级数据模型。 10.4.1 读完本章学到了什么
我们用了好几章介绍如何实现用户资源,在 5.4 节用户还不能注册,而现在不仅可以注册,还可以登录、退出、查看个人信息、修改信息,还能浏览网站中所有用户的列表,某些用户甚至可以删除其他用户。 现阶段实现的演示应用建立了坚实的基础,完全可用于任何需要认证用户和权限系统的网站。第 10 章会实现两个附加功能:向新注册的用户发送账户激活链接(同时验证电子邮件地址有效),以及密码重设功能,帮助忘记密码的用户
这两章我们介绍了很多基础知识,也为稍显简陋的应用实现了注册和登录功能。实现用户认证功能后,我们可以根据登录状态和用户的身份限制对特定页面的访问权限。我们会在第 9 章实现编辑用户个人信息的功能。 在继续之前,先把本章的改动合并到 master 分支: $ bundle exec rake test $ git add -A $ git commit -m "Finish log in/log ou
实现注册功能对演示应用来说是个重要的里程碑。 虽然现在还没实现真正有用的功能,不过却为后续功能的开发奠定了坚实的基础。第 8 章会实现用户登录、退出功能,完成整个认证功能。第 9 章,我们会实现更新用户个人信息的功能,还会实现管理员删除用户的功能,这样才算完全实现了表 7.1 中列出的用户资源相关的 REST 动作。 7.6.1 读完本章学到了什么 Rails 通过 debug 方法显示一些有用的
本章从零开始建立了一个可以正常使用的用户模型,创建了 name、email 和 password 属性,还为这些属性制定了重要的取值约束规则。而且,已经可以使用密码对用户进行认证了。整个用户模型只用了十行代码。 在接下来的第 7 章,我们会创建一个注册表单,用来新建用户,还会创建一个页面,显示用户的信息。第 8 章会使用 6.3 节实现的认证机制让用户登录网站。 如果使用 Git,而且一直都没提交