标签存档: 后台技术

PHP之MVC和网站设计架构

PHP是全世界上使用率最高的网页开发语言,台湾每4个网站,就有1个用PHP语言开发。1995年发明PHP语言的Rasmus Lerdorf,也是打造出Yahoo全球服务网站的架构师之一,他首度来台分享如何架构网站扩充性丶安全性和效能的秘诀。 继续阅读 »

Yii之深入理解“Assets”

想想许多刚刚使用YII的学习者来说,对于根目录下的assets目录都会有些困惑,本文将详细解释。

许多应用程序是Webroot下完全自包含相关资源(图像,CSS文件,JavaScript文件等)
  • webroot/css/*
  • webroot/js/*
  • webroot/images/*

如果一个模块需要添加使用资源,直接从webroot中引用添加即可。
但是试图创建一个模块能够在任何地方引用,且资源独立并能够避免命名冲突。

你如何保证你的文件名的CSS / foo.css不会与一些零散的应用程序的尝试使用相同名称的文件冲突,对于js,images也一样。
继续阅读 »

Python之web框架对比

说到Web Framework,Ruby的世界Rails一统江湖,而Python则是一个百花齐放的世界,各种micro-framework、framework不可胜数,不完全列表见:

http://wiki.python.org/moin/WebFrameworks

虽然另一大脚本语言PHP也有不少框架,但远没有Python这么夸张,也正是因为Python Web Framework(Python Web开发框架,以下简称Python框架)太多,所以在Python社区总有关于Python框架孰优孰劣的话题,讨论的时间跨度甚至长达3-5年。 继续阅读 »

使用Model上传文件

首先声明一个image属性在Model中(无论是form model或active record model)。同时声明了一个验证规则,以确保该属性的类型,大小等。

class Item extends CActiveRecord
{
    public $image;
    // ... other attributes

    public function rules()
    {
     return array(
            array('image', 'file',
                'types'=>'jpg, gif, png',
                'maxSize'=>1024 * 1024 * 50, // 50MB
                'tooLarge'=>'The file was larger than 50MB. Please upload a smaller file.',
            ),
        );
} }
然后,控制器类中定义的操作方法来呈现的form和收集用户提交的数据

yii全局函数的使用

由于YII致力于完美的整合第三方库,它并没有定义任何全局函数。yii中的每一个应用都需要全类别和对象范围。
例如,Yii::app()->user;Yii::app()->params['name'];等等。我们可以自行设定全局函数,使得代码看起来更加简洁易用。

我们可以保存在globals.php在protected目录下。然后,在入口脚本index.php的,我们包括在开始文件
require('path/to/globals.php');
require('path/to/yii.php');
现在我们可以在应用的任何地方使用我们的全局函数,例如可以使用user()代替Yii::app()->user。
注:如果你打算发布一个可重用的组件,请不要组件中使用全局函数,在不同的应用配置中,可能导致无法使用。
同时,也应注意与第三方库的冲突,可考虑对每个函数前加上自己的前缀,已做区分,例如框架核心均已C为前缀。

继续阅读 »

PHP最主要的7个安全漏洞

对于快速发展的动态网页而言,PHP是一种了不起的语言。PHP也具有对初级程序员友好的特点,比如PHP就不需要动态声明。然而,这些特征可能导致一个程序员无意地让安全漏洞潜入到web应用程序中。在PHP应用中,流行的安全邮件列表就出现大量被证实的漏洞,但是一旦你明白PHP应用程序中常见的几种漏洞的基本类型,那你将发现它和其他语言是同样安全的。

  在这篇文章中,我将详细地介绍会导致安全漏洞的几种常用见的PHP程序缺陷。通过向你们展示什么是不能做的,并且如何利用每个特定的缺陷,我希望你们不仅仅能明白怎样避免这些特定的缺陷,而且为什么这些错误能导致安全漏洞。

  明白每个可能出现的缺陷,将帮助你们避免在PHP应用程序中产生同样的错误。

  安全是一个过程,不是一个产品在应用程序开发过程中采用对安全有益的方法可以让你生成更紧密,更健壮的代码。 继续阅读 »

PHP与XML的网站编程利器

一、小序

HTML简单易学又通用,一般的PHP程序就是嵌入在HTML语言之中实现的。但是随着WEB越来越广泛的应用,HTML的弱点也越来越明显了。XML的出现,弥补了这些不足,它提供了一个能够处理互联网上全部数据的通用方法。

继续阅读 »

PHP编程规范之我见(二)

4. 帮助与共享

4.1. 重用您和其他人的艰苦工作

跨工程的重用在没有一个通用结构的情况下几乎是不可能的。对象符合他们现有的服务需求,不同的过程有着不同的服务需求环境,这使对象重用变得很困难。

开发一个通用结构需要预先花费许多的努力来设计。当努力不成功的时候,无论出于什么原因,有几种办法推荐使用:

4.2. 请教!给群组发Email求助

这个简单的方法很少被使用。因为有些程序员们觉得如果他向其他人求助,会显得自己水平低,这多傻啊!做新的有趣的工作,不要一遍又一遍的做别人已经做过的东西。

如果你需要某些事项的源代码,如果已经有某人做过的话,就向群组发email求助。结果会很惊喜哦!

在许多大的群组中,个人往往不知道其他人在干什么。你甚至可以发现某人在找一些东西做,并且自愿为你写代码,如果人们在一起工作,外面就总有一个金矿。

4.3. 告诉!当你在做事的时候,把它告诉所有人

如果你做了什么可重用的东西的话,让其他人知道。别害羞,也不要为了保护自豪感而把你的工作成果藏起来。一旦养成共享工作成果的习惯,每个人都会获得更多。

4.4. 小型代码库

对于代码重用,一个常见的问题就是人们不从他们做过的代码中做库。一个可重用的类可能正隐蔽在一个程序目录并且决不会有被分享的激动,因为程序员不会把类分拆出来加入库中。

这样的其中一个原因就是人们不喜欢做一个小库,对小库有一些不正确感觉。把这样的感觉克服掉吧,电脑才不关心你有多少个库呢。

如果你有一些代码可以重用,而且不能放入一个已经存在的库中,那么就做一个新的库吧。如果人们真的考虑重用的话,库不会在很长的一段时间里保持那么小的。 继续阅读 »

Yii应用目录设计及配置复用

上一篇文章当中已经介绍了关于YII的前后台(backend)组织目录形式,但是经过实践会发现一些问题,上文中仅仅解决了,各应用之间共享models,components的问题,但是无法解决配置文件复用。

下面就这一问题进行描述。

/webroot
       /protected
              /admin
                    /config
                         main.php
                    /models
                    /components
                    /controllers
                    /views
                    /runtime
             /config
                    main.php
             /models
             /components
             /controllers
             /views
             /runtime
             /extensions

依旧使用这样的组织目录形式,在之后的描述当中根目录下的的应用作为frontend,admin为backend,使用别名解析后,application指向protected目录,backend指向admin目录 继续阅读 »

Python2与Python3的选择

毋庸置疑:2.x是现今Python的流行版本,而Python的3.x的是作为新事物出现的。
在撰写本文的时候(2010年7月4日),最后2.7版本已经发布,此版本将作为2.x的最后一个发行版本。 而3.x的正在积极与持续的发展,3.1和3.2版本将在的岁末年初发布。
3.x的是Python的最新语言版本以及代表未来的发展趋势。 Guido van Rossum(Python语言的原创者的)决定恰当的调整Python2.x,放弃在新版本中对2.x的兼容。调整核心语言
的一些方面(如打印和exec被声明,使用floor整数除法等),使得新的python语言学习者更加方便快捷。 它也允许新的语言特性能够适应于旧的语言当中,例如2.x版本的返回
list范围range函数,新版本中可用更有效的iterable。
python3.0的新特性一文中描述了新旧版本中主要不兼容的语言变化。
然而,大多数的基于Python2.x的应用系统已经积累了多年,大量高质量的软件广泛存在。 在3.x中,打破向后兼容性的弊端是很多的,许多软件将不能在3.x直接工作。 继续阅读 »

PHP安全小建议(下)

PHP安全建议#15

作为开发者,我们大部分的人都是非常肮脏的,我为无数项目工作过。每次都能发现或者留下一堆额外的诊断文件,随地乱放。像(info.php, test.php ,doMe.php等),这些文件,如果被某个怀有不良企图的人发现,将很有可能泄露系统的有用信息。 继续阅读 »