Ubuntu 体验一把C语言的PHP框架 Phalcon PHP Framework

在oschina上看到 Phalcon的新闻,  发现还有热心的哥们翻译了中文文档,今天体验一下这个框架。

先安装php-dev

sudo apt-get install php5-dev
ls /usr/bin |grep php
看看, phpize,php-cofnig 在不在这个目录,  如果没有,再看看/urs/local/bin,再没有,就找到php安装目录,加软链接到这边来。(apt-get安装的话就直接有了。)

如果没有就加软链接:

ln -s {phpdir}/bin/phpize /usr/bin
ln -s {phpdir}/bin/php-cofnig /usr/bin

开始安装Phalcon

cd ~/Downloads/
git clone git://github.com/phalcon/cphalcon.git
cd cphalcon/build/
sudo ./install

安装完成之后添加 Phalcon 扩展配置文件。

cd /etc/php5/apache2/conf.d
sudo cp imagick.ini cphalcon.ini
sudo vim cphalcon.ini
我们复制imagick。ini的配置文件。然后编辑输入:
; configuration for php Phalcon PHP Framework module
; https://github.com/phalcon/cphalcon
extension=phalcon.so

重启apache

sudo /etc/init.d/apache2 restart

试试Phalcon 官方的 Phalcon tutorial
cd /var/www
git clone git://github.com/phalcon/tutorial.git
访问一下 localhost/tutorial 发现不支持rewrite 配置apache支持 rewrite
sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
sudo vim /etc/apache2/sites-available/default

<Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
改为:

<Directory />
                Options FollowSymLinks
                AllowOverride All
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride ALL
                Order allow,deny
                allow from all
        </Directory>


ok了

Ubuntu 体验一把C语言的PHP框架 Phalcon PHP Framework_第1张图片

控制器,模型 都在截屏上了。 c语言实现php mvc  的确不错哦。 如果有个php实现的版本,对phper来说还是比较有爱的, 因为大多数高PHP的同学们是不会C开发的,这样子如果对框架有社么扩展或者修改的需求,那就可以去研究谭浩强了。    可能框架作者已经考虑过, 指不定有完善的api,扩展,修改机制。 有待研究。


大概看了一下官方的简易演示代码,感觉就好像是C语言版本的yii框架。 呵呵

index.php入口文件代码:

<?php

try {

    //Register an autoloader
    $loader = new \Phalcon\Loader();
    $loader->registerDirs(
        array(
            '../app/controllers/',
            '../app/models/'
        )
    )->register();

    //Create a DI
    $di = new Phalcon\DI\FactoryDefault();

    //Set the database service
    $di->set('db', function(){
        return new \Phalcon\Db\Adapter\Pdo\Mysql(array(
            "host" => "localhost",
            "username" => "root",
            "password" => "123456",
            "dbname" => "Phalcon"
        ));
    });

    //Setting up the view component
    $di->set('view', function(){
        $view = new \Phalcon\Mvc\View();
        $view->setViewsDir('../app/views/');
        return $view;
    });

    //Handle the request
    $application = new \Phalcon\Mvc\Application();
    $application->setDI($di);
    echo $application->handle()->getContent();

} catch(\Phalcon\Exception $e) {
     echo "PhalconException: ", $e->getMessage();
}

注册控制器代码

<?php

class SignupController extends Phalcon\Mvc\Controller
{

	public function indexAction()
	{

	}

	public function registerAction()
	{

		//Request variables from html form
		$name = $this->request->getPost('name', 'string');
		$email = $this->request->getPost('email', 'email');

		$user = new Users();
		$user->name = $name;
		$user->email = $email;

		//Store and check for errors
		if ($user->save() == true) {
			echo 'Thanks for register!';
		} else {
			echo 'Sorry, the next problems was generated: ';
			foreach ($user->getMessages() as $message){
				echo $message->getMessage(), '<br/>';
			}
		}
	}

}

有空再深入试试他的特性。 


下面添加一下安装过程的截图:

修改配置文件,增加phalcon扩展支持

Ubuntu 体验一把C语言的PHP框架 Phalcon PHP Framework_第2张图片

phpinfo 中的phalcon

Ubuntu 体验一把C语言的PHP框架 Phalcon PHP Framework_第3张图片Ubuntu 体验一把C语言的PHP框架 Phalcon PHP Framework_第4张图片


你可能感兴趣的:(PHP,framework,php框架,phalcon)