A Phalcon在Windows上的安装

1 从Phalcon for Windows下载适合的DLL,

这里的适合 主要看两个方面

1 PHP的版本

2 线程是否是安全

3 编译版本

如果不清楚这些信息的话,可以编写一个phpinfo.php脚本

<?php

phpinfo();

?>

然后通过浏览器直接访问该文件,就能知道以上的所有信息

例如本人机器的环境信息如下

2 将下载下来的DLL文件,复制到PHP的扩展目录去,本人的目录是在C:\Zend\ZendServer\lib\phpext

3 在php.ini文件中 增加extension=php_phalcon.dll

4 重启apache

5 验证是否安装正确

B devtools的安装(通过composer安装)

1  在本机的某个目录下比如说d:\github\phalcon

增加一个composer.json文件

内容如下

{
  "require": {
    "phalcon/devtools": "dev-master"
  }
}

2 运行cmd,进入到该目录 比如说 cd d:\github\phalcon,运行composer install,会生成vendor目录,在vendor/phalcon/devtools目录是很重要的目录,他的结构如下

3 设置环境变量,设置步骤如图所示,设置的Path为;D:\github\phalcon\vendor\phalcon\devtools

4 验证是否安装成功

出现该图所示的话,说明OK

C devtools的使用

1 在D:\github\phalcon\目录下,建立一个可以使用webtools的项目learn

phalcon.bat project learn --enable-webtools

建立完成之后的工程目录为

app目录

public目录

从上面可以基本判断是一个MVC的框架

2 在apache上设置虚拟目录

http.conf 配置如下

<Directory "D:/github">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>

<VirtualHost *:80>
DocumentRoot D:/github/phalcon/learn/public
ServerName learn
</VirtualHost>

3 hosts文件中增加以下内容

127.0.0.1       learn

4 重启apache服务之后,在浏览器上浏览http://learn/index/index的时候

说明OK

5 在浏览器上浏览http://learn/webtools.php的时候

这个页面显示上好像有些问题.和官方文档上显示出来的页面样子是不同的.

然后随便点击页面上的连接,比如点击了controllers连接,出现了以下的错误

看来肯定在某个地方有问题了. 后来发现在浏览器上的浏览路径发生了改变.变成了

http://learn/learn/webtools.php?_url=/controllers,

怎么多出来了一个learn呢?应该只有一个才对,所以

将地址改成http://learn/webtools.php?_url=/controllers之后访问页面

可以运行,没有报错,而且还多出来了controller的信息

但是页面的样式还是不对.造成页面样式不对的可能的原因一般是css和js的造成的

所以打开浏览器的开发者工具,查看css,js等资源请求的情况,发现了以下的问题

看来是多出来的learn 惹得祸. 造成了资源没有请求到.

6 解决方法.

阅读了webtools.php的源代码,发现它其实最终调用了

D:\github\phalcon\vendor\phalcon\devtools\scripts\Phalcon\Web\tools.php里面的main方法

该方法中有以下的一段代码,设置了url

$di->set('url', function () use ($config) {
  $url = new \Phalcon\Mvc\Url();
  $url->setBaseUri($config->application->baseUri);

  return $url;
});

所以$config->application->baseUri这个值是个关键

而$config参数是哪里来的呢,查找$config,找到以下的代码

// Read configuration
$configPaths = array(
  'config',
  'app/config',
  'apps/frontend/config'
);

$readed = false;

foreach ($configPaths as $configPath) {
  $cpath = $configPath . '/config.ini';

  if (file_exists($cpath)) {
    $config = new \Phalcon\Config\Adapter\Ini($cpath);
    $readed = true;

    break;
  } else {
    $cpath = $configPath . '/config.php';

    if (file_exists($cpath)) {
      $config = require $cpath;
      $readed = true;

      break;
    }
  }
}

发现原来是从工程目录下的config,app/config,apps/fontend/config目录里面的config.ini或config.php而来的

这样打开工程learn的app/config/config.php文件.发现了

'baseUri'        => '/learn/', 将它改成'baseUri'        => '/',

重新刷新页面

这样问题就解决了

D 开发环境IDE设置

1 Zend Studio

这样配置完成了之后,就可以代码提示了

2 PhpStorm

代码提示就OK了

设置devtools

这样就可以直接phpstorm中直接使用

这样开发环境就都配置完成了.

												

Phalcon的学习篇-phalcon和devtools的安装和设置的更多相关文章

  1. 深度学习篇——Tensorflow配置(傻瓜安装模式)

    前言 如果你是一个完美主义者,那么请绕过此文,请参考<深度学习篇——Tensorflow配置(完美主义模式)> 安装 pip install tensorflow ok,只要不报错,安装就 ...

  2. [持续集成学习篇]【1】[jenkins安装与配置]

    Guided Tour This guided tour will use the "standalone" Jenkins distribution which requires ...

  3. Phalcon 开发工具(Phalcon Developer Tools)

    Phalcon提供的这个开发工具主要是用来辅助开发,比方生成一些程序的基本框架.生成控制器模型等. 使用这个工具我们仅仅须要一个简单的命令就可以生成应用的基本框架. 很重要: 要使用这个工具我们必需要 ...

  4. js学习篇1--数组

    javascript的数组可以包含各种类型的数据. 1. 数组的长度 ,直接用 length 属性; var arr=[1,2,3]; arr.length; js中,直接给数组的length赋值是会 ...

  5. Tomcat集群配置学习篇-----分布式应用

    Tomcat集群配置学习篇-----分布式应用 现目前基于javaWeb开发的应用系统已经比比皆是,尤其是电子商务网站,要想网站发展壮大,那么必然就得能够承受住庞大的网站访问量:大家知道如果服务器访问 ...

  6. (转载)OC学习篇之---概述

    前言 终于开启了OC的学习篇了,之前由于工作上的事,学习就一直搁浅了,不过最近由于各种原因,感觉必须要开启iOS的开发旅程了,不然就老了.因为之前一直是做Android的,所以学习iOS来就没那么费劲 ...

  7. 《Mysql 公司职员学习篇》 第二章 小A的惊喜

          第二章 小A的惊喜  ---- 认识数据库 吃完饭后,小Y和小A回到了家里,并打开电脑开始学习Mysql. 小Y:"小A,你平时的Excell文件很多的情况下,怎么样存放Exce ...

  8. Java多线程(学习篇)

    Java多线程:(学习篇) 1.什么是线程 2.线程状态 3.线程中断 4.线程交互 5.同步机制 6.锁机制 7.堵塞队列与堵塞栈 8.条件变量.原子量.线程池等 9.线性安全类和Callable与 ...

  9. 鸟哥Linux私房菜基础学习篇学习笔记3

    鸟哥Linux私房菜基础学习篇学习笔记3 第十二章 正则表达式与文件格式化处理: 正则表达式(Regular Expression) 是通过一些特殊字符的排列,用以查找.删除.替换一行或多行文字字符: ...

随机推荐

  1. [CSS] @keyframes

    @keyframes swing{ 0% { transform: rotate(0deg)} 100% {transform: rotate(-30deg)} } #sweetlandia{ ani ...

  2. [AngularJS + Webpack] Requiring Templates

    With Angular, most of the time you're specifying a templateUrl for your directives and states/routes ...

  3. 理解 Linux 网络栈(1):Linux 网络协议栈简单总结 图

    http://www.cnblogs.com/sammyliu/p/5225623.html

  4. Driving the Activity Lifecycle

    Before Robolectric 2.2, most tests created Activities by calling constructors directly, (new MyActiv ...

  5. PHP编译错误Don't know how to define struct flock on this system, set --enable-opcache=no

    编辑 /etc/ld.so.conf 加入 /usr/local/lib 再执行 ldconfig

  6. .NET中TextBox控件设置ReadOnly=true后台取不到值三种解决方法

    当TextBox设置了ReadOnly=true后要是在前台为控件添加了值,后台是取不到的,值为空,多么郁闷的一个问题经过尝试,发现可以通过如下的方式解决这个问题.感兴趣的朋友可以了解下 当TextB ...

  7. 关于在MDK4.5以上版本不能使用JLINK V8的解决办法

    如果安装MDK4.50版本以上不能使用jlink8的话,请安装jlink 4.36k版本(或以下)驱动,安装完成后,把\SEGGER\JLinkARM_V436k目录下的JLinkARM.dll拷贝到 ...

  8. HTML5移动开发中的input输入框类型

    HTML5规范引入了许多新的input输入框类型 在HTML5移动开发中,通过这些新的输入框类型来显示定制后的键盘布局,用户体验更好,更容易填写各种表单 本文中,实测手机为肾4S与米4 数字类型num ...

  9. youphp学习整理

    <?php //后台公共模块 // _list 数据显示 // add 添加/编辑 视图 // insert 添加处理函数 // edit 添加/编辑 视图 // update 更新处理函数 / ...

  10. 添加Pods后,import无提示的解决办法

    选择工程的 Target -> Build Settings 菜单,找到\”User Header Search Paths\”设置项 新增一个值"$(PODS_ROOT)" ...