PHP官方框架 Zend Framework 2.1 发布

Zend Framework

Zend Framework (简写ZF)是由 Zend 公司支持开发的完全基于 PHP5 的开源PHP开发框架,可用于开发 Web 程序和服务,ZF采用 MVC(Model–View-Controller) 架构模式来分离应用程序中不同的部分方便程序的开发和维护。

在2012年9月5日正式发布了2.0版本,简称为ZF2,该版本的主打口号则是“高性能”。目前的最新版本为 Zend Framework 2.1,是ZF2里的首个正式版本。最新版本除了对原有组件功能进行大幅提升外,还新添两个新成员:

  • ZendService_Apple_Apns:专为iOS系统提供通知功能。
  • ZendService_Google_Gcm:为Android提供通知功能。

阅读更多

开源社区九大最不想承认的事实

你可能认为,一群聪明人不会有什么忌讳藏着掖着,比如像自由和开源软件(FOSS)社区的成员。你还可能觉得,这样一群知识分子不会觉得什么想法是禁止讨论的或让人不舒服的;但要是你果真这么想,那就大错特错了。

与任何亚文化一样,FOSS也是由共同的信念维系在一起。共同的信念有助于形成一种共同的归属感,这意味着对这些信念提出质疑,无异于对这个归属感提出质疑。

其中一些忌讳话题可能会颠覆20年或更长时间以来秉承的公理。另一些忌讳话题则是新的,质疑公认的真理。不过,尽管细细打量忌讳可能让人不舒服,但 这么做往往是必要的。许多信念已不再适用,或者已经沦为半真半假的话之后,还流行很长一段时间。有时考虑一下无法想象的事情大有意义,只有这样才能让信念 重新接受现实的考验。

基于这个道理,我列出了个人针对当下开源社区的九点看法;至于这些看法正确与否,有待各位评论。

阅读更多

PHP 5.4 内置Web服务器使用说明

PHP

PHP是一种脚本语言,它需要PHP解释器来分析运行PHP文件。当把PHP做为CGI服务Web请求时,它需要被嵌入到某种Web服务器里,最常见的是集成到Apache或IIS里,这就是说,在使用PHP前,你需要安装Apache或IIS,并且正确的配置它们和PHP集成的参数。虽然这种配置已经很规范,文档非常丰富,但我们还是经常在安装Apache和PHP集成时遇到问题,而且,有时候我们只想测试一个简单的PHP特征,不想就为此安装、启动Apache服务。

但据官方文档上说,这个内置的Web服务器只是提供开发测试使用,不推荐使用中生产环境中。因为这个服务器接受处理请求时顺序执行的,不能并发处理。

阅读更多

PHP重置JPG图片尺寸的函数

代码如下:

<?php
/**
 * 重置Jpg图片尺寸
 * 
 * @param string $path
 * @param string $filename 源文件名
 * @param int $maxwidth
 * @param int $maxheight
 * @param string $newname 新文件名
 */
function reSizeJpg($path, $filename, $maxwidth, $maxheight, $newname)
{
    $jpg = imagecreatefromjpeg($path.'/'.$filename);
    if ($jpg) {
        $width = imagesx($jpg);
        $height = imagesy($jpg);
    } else {
        return false;
    }
    
    if (($maxwidth && $width > $maxwidth) || ($maxheight && $height > $maxheight)) {
        if ($maxwidth && $width > $maxwidth) {
            $widthratio = $maxwidth / $width;
            $resize_width = true;
        }
        if ($maxheight && $height > $maxheight) {
            $heightratio = $maxheight / $height;
            $resize_height = true;
        }
        if ($resize_width && $resize_height) {
            if ($widthratio < $heightratio) {
                $ratio = $widthratio;
            } else {
                $ratio = $heightratio;
            }
        } elseif ($resize_width) {
            $ratio = $widthratio;
        } elseif ($resize_height) {
            $ratio = $heightratio;
        }
        $newwidth = $width * $ratio;
        $newheight = $height * $ratio;
        if (function_exists("imagecopyresampled")) {
            $newim = imagecreatetruecolor($newwidth, $newheight);
            imagecopyresampled($newim, $jpg, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
        } else {
            $newim = imagecreate($newwidth, $newheight);
            imagecopyresized($newim, $jpg, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
        }
        imagejpeg($newim, $path.'/'.$newname);
        imagedestroy($newim);
    } else {
        imagejpeg($jpg, $path.'/'.$newname);
    }
    imagedestroy($jpg);
    return true;
}
?>