分类 phalcon 下的文章

2016
02-18

依赖注入和控制反转是什么?

年前,@绵阳飞在群里发起了一个讨论,依赖注入和控制反转到底是什么?
我之前对依赖注入和控制反转也不甚理解,直至在学习Phalcon框架的过程中,发现在Phalcon文档中有一个篇幅通过代码示例的方式专门描述了依赖注入的原理。本文打算通过此文档中的代码示例来讲解什么是依赖注入(DI)和控制反转(IoC)。通过示例代码,来更加深入的了解这些概念。

接下来的例子有些长,但解释了为什么我们要使用依赖注入。所以绝对都是干货,请耐心读完,必会有所收获。

依赖的产生

首先,假设我们正在开发一个组件,叫SomeComponent,它需要执行的内容现在还不重要。 但是我们的组件需要依赖数据库连接。

<?php

class SomeComponent
{
    /**
     * 数据库连接是被写死在组件的内部
     * 因此,我们很难从外部替换或者改变它的行为
     */
    public function someDbTask()
    {
        $connection = new Connection(
            array(
                "host"     => "localhost",
                "username" => "root",
                "password" => "secret",
                "dbname"   => "invo"
            )
        );

        // ...
    }
}

$some = new SomeComponent();
$some->someDbTask();

从上面这个例子中,可以看到数据库连接是在组件内部建立的。在我们日常开发中,类似这样的依赖关系在项目中非常常见。但是这种方法其实是不太实用的;我们不能改变创建数据库连接的参数或者选择不同的数据库系统,因为数据库连接是在组件被创建时建立的。

查看全文 >
2015
12-13

云服务器编译安装phalcon失败

这两天萌生想法,想做一个自己的东西。在框架选型方面,打算用Phalcon框架。一方面是上手这个框架已经三年多时间了,顺手且轻车熟路;另一方面,也是在公司大大小小的项目中经受住了洗礼。初步选型既已经确定,就即刻开始环境的准备。既然是自己的小项目,那就用自己的阿里云服务器(ECS)。
这里先简单列下ECS的配置:

1核CPU+1G内存 64位centos

问题起因

下面开始Phalcon框架的编译安装。

#下载phalcon 2.0.9安装文件
wget https://github.com/phalcon/cphalcon/archive/phalcon-v2.0.9.tar.gz

#解压phalcon 2.0.9安装文件 
tar -zxvf phalcon-v2.0.9.tar.gz
cd cphalcon-phalcon-v2.0.9/build/

#执行安装脚本
./install

在脚本执行到“make”步骤时,报错:

gcc: Internal error: Killed (program cc1)


查看全文 >
2015
11-20

phpstorm识别Phalcon语法及提示

在开发Phalcon相关项目时,phpstorm编辑器并没有Phalcon相关语法的自动提示,相对影响开发效率。下面来介绍如何让phpstorm支持对Phalcon语法的自动提示。

1、下载phalcon-devtools包

https://github.com/phalcon/phalcon-devtools 下载phalcon-devtools,并解压到任意目录。

2、phpstorm导入Phalcon库

1.png

查看全文 >
2015
03-19

Phalcon调试大杀器之phalcon-debugbar安装 HOT

Phalcon 是一款非常火的高性能C扩展php开发框架。特点是高性能低耦合,但遗憾的是长期缺少一款得力的调试辅助工具。

感谢作者“老朱”,现在phalcon也有了专属的debug工具: Phalcon Debugbar。从今天起phalcon开发者们再也不用羡慕Zf,Laravel,Ci等集成了php debug bar的框架,因为phalcon已经正式成为了其中一员。目前版本主要以Laravel debugbar的具有功能为蓝本开发,并针对phalcon的功能特征进行了小幅更改,未来版本还将针对phalcon的功能进行进一步扩展丰富。项目地址:http://git.oschina.net/zhuyajie/phalcon-debugbar

readme.md中只是粗略的介绍了phalcon-debugbar的安装方式,新学者可能很难理解其中的安装步骤,Marser下面将给大家介绍下详尽的安装步骤。


1、安装composer

composer是PHP用来管理依赖(dependency)关系的工具。可以在自己的项目中声明所依赖的外部工具库(libraries),Composer会帮助安装这些依赖的库文件。安装命令如下:

cd /usr/local/src
curl -sS https://getcomposer.org/installer | php
#移动目录,进行全局安装
mv composer.phar /usr/local/bin/composer
查看全文 >
2015
01-23

zendstudio识别Phalcon语法及提示

Phalcon是一个开源的、全堆栈的PHP5框架,使用C扩展编写,专门为高性能优化。无需学习和使用C语言,所有函数都以PHP类的方式呈现。
在Zend studio编辑器中进行Phalcon框架代码开发时,IDE无法对Phalcon框架内的对象、函数与方法进行语法提示。下面就来介绍下,如何让zend studio这个IDE支持Phalcon的语法提示。

1、下载代码提示包,然后解压

https://github.com/rogerthomas84/PhalconPHPDoc

2、打开“/your/workspace/.metadata/.plugins/org.eclipse.php.core/language/”目录,会看到当前目录下,有一些类似“555a446a”或者“7697c88c”的目录,这些目录名称是随机生成的,每个目录当中都要将刚才解压后的Phalcon整个目录文件复制进去,否则不会生效

查看全文 >
2013
07-12

常用正则表达式

1、身份证正则验证:

/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/

2、邮箱正则验证:

/[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/

3、手机号码正则验证(支持虚拟号段):

/^((13[0-9])|(15[^4])|(14[57])|(17[0678])|(18[0,0-9]))\\d{8}$/

4、固定电话正则验证:

/\d{7,8}|\d{3}-\d{8}|\d{4}-\d{7,8}/

5、中文、英文、数字和中下划线:

#php正则表达式:
/^[a-zA-Z0-9_\-\x{4e00}-\x{9fa5}]+$/u

#js正则:
/^[a-zA-Z0-9_\-\u4e00-\u9fa5]+$/
查看全文 >
微信扫一扫