phalcon学习

<?php
安装篇幅:
[[email protected] ~]#wget https://github.com/phalcon/cphalcon.git
//解压后一定要跑到build目录下  phpize 生成configure文件  本人在此处遇坑,一直找不到config.m4文件
[[email protected] ~]#cd cphalcon-master/build/
[[email protected] ~]#phpize
[[email protected] ~]#./configure --with-config=/usr/local/php/bin/php-config
[[email protected] ~]#make && make install

目录
|++ app             应用目录
|   |++ controllers 控制器
|   |++ models      模型
|   |++ views       视图
|   |++ cache       模板缓存文件;
|   |++ config      配置
|        |++  config.php
|        |++  loader.php
|        |++  routes.php
|        |++  service.php
|++ public      入口文件目录
|   |++ index.php 

入口 index.php
    $debug = new \Phalcon\Debug();
    $debug->listen();  

	$config = include __DIR__ . "/../apps/config/config.php";

	include __DIR__ . "/../apps/config/loader.php";

	include __DIR__ . "/../apps/config/services.php";

	class BaseApplication extends \Phalcon\Mvc\Application
	{

	}
	$application = new BaseApplication();
	$application->setDI($di);
	echo $application->handle()->getContent();

//注册一个路由器层
$di ->set(‘router‘, function() {
    $router = new \Phalcon\Mvc\Router();
   //nginx的rewrite 这句非常重要 不然只能访问index控制器index方法 本人在此与坑
    $router->setUriSource(\Phalcon\Mvc\Router::URI_SOURCE_SERVER_REQUEST_URI);

    //Define a route
    $router->add(
        "/admin/:controller/a/:action/:params",
        array( "controller" => 1, //匹配第一个占位符(/:controller)
            "action"     => 2, //匹配第二个占位符(/:action)
            "params"     => 3, //匹配第三个占位符(/:params)
        ) );

    $router->add(
        "/news/([0-9]{4})/([0-9]{2})/([0-9]{2})/:params",
        array(
            "controller" => "index",
            "action" => "show",
            "year"   => 1, // ([0-9]{4})
            "month"  => 2, // ([0-9]{2})
            "day"=> 3, // ([0-9]{2})
            "params" => 4, // :params
        )
    )->convert(‘params‘, function($params) {
        //Transform the slug removing the dashes
        return str_replace(‘-‘, ‘‘, $params);
    });

    $router->setDefaultController(‘index‘);
    $router->setDefaultAction(‘index‘);

    //Using an array
    $router->setDefaults(array(
        ‘controller‘ => ‘index‘,
        ‘action‘     => ‘index‘
    ));
    return $router;
});

控制器
class IndexController extends ControllerBase
{
    //所有方法之前执行
    public function beforeExecuteRoute($dispatcher)
    {
          echo "<br/>";
    }

	//先执行 beforeExecuteRoute方法  在执行  initialize方法
    public function initialize()
	{

	}

	 public function showAction()
     {
		$post = $this->request->getPost(); //接收所有post参数
        $robot = MgUserMember::findFirst()->toArray();
        print_r($robot);
        echo $this->view->hello = "hey, hello!";

       $this->view->setVar("name", $robot->nickname); //传值到视图

	    $this->view->disable(); //关闭视图

		 $this->view->pick("layouts/test"); //选择视图文件
        $this->view->pick("index/index");  //默认会自动渲染此文件
    }

	//所有方法之后执行
    public function afterExecuteRoute($dispatcher)
    {
		 $this->dispatcher->forward(array(
            ‘controller‘ => ‘home‘,
            ‘action‘     => ‘index‘
        ));
	}
}

模型层
use Phalcon\Mvc\Model;

class MgUserMember extends Model {

    public function initialize() {
        $this->setReadConnectionService(‘dbRead‘);
    }

    public function getSource()  //返回表名
    {
        return ‘mg_user_member‘;
    }
}

视图层
<html>
<head>
  <title>问我我我我我娃娃</title>
</head>
<body>
       <h1>aaaaaaaaaa</h1>
       <?php echo $this->getContent() ?>
</body>
</html>

//常用类
 print_r(get_class_methods($this->request));
    [0] => getHttpMethodParameterOverride
    [1] => setHttpMethodParameterOverride
    [2] => setDI
    [3] => getDI
    [4] => get
    [5] => getPost
    [6] => getPut
    [7] => getQuery
    [8] => getServer
    [9] => has
    [10] => hasPost
    [11] => hasPut
    [12] => hasQuery
    [13] => hasServer
    [14] => getHeader
    [15] => getScheme
    [16] => isAjax
    [17] => isSoap
    [18] => isSoapRequested
    [19] => isSecure
    [20] => isSecureRequest
    [21] => getRawBody
    [22] => getJsonRawBody
    [23] => getServerAddress
    [24] => getServerName
    [25] => getHttpHost
    [26] => setStrictHostCheck
    [27] => isStrictHostCheck
    [28] => getPort
    [29] => getURI
    [30] => getClientAddress
    [31] => getMethod
    [32] => getUserAgent
    [33] => isValidHttpMethod
    [34] => isMethod
    [35] => isPost
    [36] => isGet
    [37] => isPut
    [38] => isPatch
    [39] => isHead
    [40] => isDelete
    [41] => isOptions
    [42] => isPurge
    [43] => isTrace
    [44] => isConnect
    [45] => hasFiles
    [46] => getUploadedFiles
    [47] => getHeaders
    [48] => getHTTPReferer
    [49] => getContentType
    [50] => getAcceptableContent
    [51] => getBestAccept
    [52] => getClientCharsets
    [53] => getBestCharset
    [54] => getLanguages
    [55] => getBestLanguage
    [56] => getBasicAuth
    [57] => getDigestAuth

  print_r(get_class_methods($this->response));
    [0] => __construct
    [1] => setDI
    [2] => getDI
    [3] => setStatusCode
    [4] => getStatusCode
    [5] => setHeaders
    [6] => getHeaders
    [7] => setCookies
    [8] => getCookies
    [9] => setHeader
    [10] => setRawHeader
    [11] => resetHeaders
    [12] => setExpires
    [13] => setLastModified
    [14] => setCache
    [15] => setNotModified
    [16] => setContentType
    [17] => setContentLength
    [18] => setEtag
    [19] => redirect
    [20] => setContent
    [21] => setJsonContent
    [22] => appendContent
    [23] => getContent
    [24] => isSent
    [25] => sendHeaders
    [26] => sendCookies
    [27] => send
    [28] => setFileToSend

 print_r(get_class_methods($this->view));
    [0] => getRenderLevel
    [1] => getCurrentRenderLevel
    [2] => getRegisteredEngines
    [3] => __construct
    [4] => setViewsDir
    [5] => getViewsDir
    [6] => setLayoutsDir
    [7] => getLayoutsDir
    [8] => setPartialsDir
    [9] => getPartialsDir
    [10] => setBasePath
    [11] => getBasePath
    [12] => setRenderLevel
    [13] => disableLevel
    [14] => setMainView
    [15] => getMainView
    [16] => setLayout
    [17] => getLayout
    [18] => setTemplateBefore
    [19] => cleanTemplateBefore
    [20] => setTemplateAfter
    [21] => cleanTemplateAfter
    [22] => setParamToView
    [23] => setVars
    [24] => setVar
    [25] => getVar
    [26] => getParamsToView
    [27] => getControllerName
    [28] => getActionName
    [29] => getParams
    [30] => start
    [31] => registerEngines
    [32] => exists
    [33] => render
    [34] => pick
    [35] => getPartial
    [36] => partial
    [37] => getRender
    [38] => finish
    [39] => isCaching
    [40] => getCache
    [41] => cache
    [42] => setContent
    [43] => getContent
    [44] => getActiveRenderPath
    [45] => disable
    [46] => enable
    [47] => reset
    [48] => __set
    [49] => __get
    [50] => isDisabled
    [51] => __isset
    [52] => setDI
    [53] => getDI
    [54] => setEventsManager
    [55] => getEventsManager
时间: 2024-10-28 19:23:45

phalcon学习的相关文章

phalcon学习笔记之disable

今天用Ajax 进行查询数据时  出现的问题 Ajax 调用后   一直走Error路线   利用Error捕捉错误 error: function(XMLHttpRequest, textStatus, errorThrown) { alert(XMLHttpRequest.status); alert(XMLHttpRequest.readyState); alert(textStatus); },服务端返回值为标准Json弹出 Status 为200 readyState 为 4 text

phalcon框架学习之view

phalcon框架的view分多级:全局-控制器视图-动作视图.视图由上到下,按层级嵌套. 全局视图 默认全局视图为Views/index.html,所有的页面展示时,默认调用此页面,在这个页面中必须包含? ?echo $this->getContent() ?语句,这个语句会读取views/layout/controllername.html,并把其内容嵌入在这句代码所在的位置. 控制器视图 控制器视图为views/layout/controllername.html,控制器视图为控制器的全局

学习phalcon框架按照官网手册搭建第一个项目注册功能

中文手册官网:http://phalcon.ipanta.com/1.3/tutorial.html#bootstrap 官网提供http://www.tutorial.com项目源码github地址:https://github.com/phalcon/tutorial 搭建时候需要注意的问题: 1.虚拟主机的搭建: <VirtualHost *:80> DocumentRoot "D:/web/tutorial/" ServerName www.tutorial.com

Phalcon Demo INVO class diagram

phalcon称自己是 最快的PHP框架. “Phalcon 是开源.全功能栈.使用 C 扩展编写.针对高性能优化的 PHP 5 框架. 开发者不需要学习和使用 C 语言的功能, 因为所有的功能都以 PHP 类的方式暴露出来,可以直接使用. Phalcon 也是松耦合的,可以根据项目的需要任意使用其他对象.Phalcon 不只是为了卓越的性能, 我们的目标是让它更加健壮,拥有更加丰富的功能以及更加简单易于使用!” 本文分析一下 教程中的INVO项目,先做一个类图,放上来. INVO DEMO I

LARAVEL学习--安装

之前一直使用Codeignitor框架进行PHP的开发,Codeignitor是一个非常优秀的框架,上手简单,文档极其友好,流行程度甚高(这带来了很好的社区支持+云环境支持),很轻量,可扩展性佳,性能也不错.但它有两个问题: 1.快糙猛(当然这也是PHP的本来特点),不够优雅(有悖最佳实践),也有点老了(CI 2也一样),跟不上新的行业标准(PSR-0/Composer) 2.前景堪忧,CI作者已经放弃更新了. 所以我重新搜索了当今流行的PHP框架. Sitepoint网站做了一个小的调查,看看

推荐一个国外C开发的PHP框架--Phalcon,性能相当好

本人亲自配置测试后.性能相当不错.不过有一点.使用极不符合国人习惯,甚至和大多数主流PHP框架如Zend Framework,Yii,Ci,Thinkphp都不一样. Phalcon 是一个开源的,全堆栈的,用C语言写成的php5框架,专为高性能设计.你不需要学习和使用C语言的功能,因为这是一个PHP框架,只不过用C写成而已.同时Phalcon是松耦合的,您可以根据需要使用其他组件. Phalcon不只是性能优越,我们的目标是让它强大而且易于使用! 从介绍上可以总结出几个特点: 1.开源 可以下

Phalcon 性能最高的php框架没有之一

最近有个朋友说他们现在在用Phalcon框架开发项目,明显感觉性能有很大的提升,所有着手学习下这个高性能框架,网上是这样说的“虽然以C语言编写达到较高的效能,但相对的一项缺点就是在服务器上必须拥有管理员权限才能够安装,因此一般的共享主机将无法安装Phalcon.Phalcon是一套实现MVC架构的高性能php应用程序框架.初始版本发布于2012年11月,开放源代码并基于BSD授权条款.与其他大部分的PHP框架不同,Phalcon是以扩充的方式以C语言所编写,因此Phalcon的执行速度高过其他P

PDO学习记录

最近在学习phalcon这个框架 因为里面有用到PDO 所以学了下  安装过程就不记录了 1)开启扩展 配置php配置文件,开启相应的扩展 extension=php_pdo.dll 2)连接数据库 2.1)通过参数连接 $pdo = new PDO( '数据源(mysql:host=主机名;dbname=数据库名;)', '用户名', '密码' ); 2.2) 通过uri连接 $pdo = new PDO( 'uri:file://文件路径', '用户名', '密码' ); 2.3) 通过配置

PHP入门学习:现在写 PHP,你应该知道这些

本文来源:http://www.zretc.com/technologyDetail/443.html 如果你正在进行PHP入门学习,那么下面这些关于PHP的入门知识你应该知道哦! 首先你应该是在用 PHP 5.3 以上的版本,如果 PHP 版本在这之下,是时候该升级了.如果有条件,最好使用最新的版本. 1.PSR 很多人以为 PSR 只是做一些规范代码风格等无关痛痒的事情,但其实远不止此. PSR 的一系列标准文档由 php-fig (PHP Framework Interop Group)起