Phalcon的学习篇-phalcon和devtools的安装和设置
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的安装和设置的更多相关文章
- 深度学习篇——Tensorflow配置(傻瓜安装模式)
前言 如果你是一个完美主义者,那么请绕过此文,请参考<深度学习篇——Tensorflow配置(完美主义模式)> 安装 pip install tensorflow ok,只要不报错,安装就 ...
- [持续集成学习篇]【1】[jenkins安装与配置]
Guided Tour This guided tour will use the "standalone" Jenkins distribution which requires ...
- Phalcon 开发工具(Phalcon Developer Tools)
Phalcon提供的这个开发工具主要是用来辅助开发,比方生成一些程序的基本框架.生成控制器模型等. 使用这个工具我们仅仅须要一个简单的命令就可以生成应用的基本框架. 很重要: 要使用这个工具我们必需要 ...
- js学习篇1--数组
javascript的数组可以包含各种类型的数据. 1. 数组的长度 ,直接用 length 属性; var arr=[1,2,3]; arr.length; js中,直接给数组的length赋值是会 ...
- Tomcat集群配置学习篇-----分布式应用
Tomcat集群配置学习篇-----分布式应用 现目前基于javaWeb开发的应用系统已经比比皆是,尤其是电子商务网站,要想网站发展壮大,那么必然就得能够承受住庞大的网站访问量:大家知道如果服务器访问 ...
- (转载)OC学习篇之---概述
前言 终于开启了OC的学习篇了,之前由于工作上的事,学习就一直搁浅了,不过最近由于各种原因,感觉必须要开启iOS的开发旅程了,不然就老了.因为之前一直是做Android的,所以学习iOS来就没那么费劲 ...
- 《Mysql 公司职员学习篇》 第二章 小A的惊喜
第二章 小A的惊喜 ---- 认识数据库 吃完饭后,小Y和小A回到了家里,并打开电脑开始学习Mysql. 小Y:"小A,你平时的Excell文件很多的情况下,怎么样存放Exce ...
- Java多线程(学习篇)
Java多线程:(学习篇) 1.什么是线程 2.线程状态 3.线程中断 4.线程交互 5.同步机制 6.锁机制 7.堵塞队列与堵塞栈 8.条件变量.原子量.线程池等 9.线性安全类和Callable与 ...
- 鸟哥Linux私房菜基础学习篇学习笔记3
鸟哥Linux私房菜基础学习篇学习笔记3 第十二章 正则表达式与文件格式化处理: 正则表达式(Regular Expression) 是通过一些特殊字符的排列,用以查找.删除.替换一行或多行文字字符: ...
随机推荐
- hdu 3729 I'm Telling the Truth 二分图匹配
裸的二分图匹配.需要输出方案. #include<cstdio> #include<cstring> #include<vector> #include<al ...
- [Angular 2] Keynote: Lazy Routing -- NGCONF
So How to do lazy loading for router in Angular 2. The nomarl way to write a router in Angular 2: Yo ...
- libpcap使用
libpcap是一个网络数据包捕获函数库,功能非常强大,Linux下著名的tcpdump就是以它为基础的.今天我们利用它来完成一个我们自己的网络嗅探器(sniffer) 首先先介绍一下本次实验的环境: ...
- 使用AVCaptureSession显示相机预览
#import <UIKit/UIKit.h> #import <AVFoundation/AVFoundation.h> @interface ViewController ...
- Bash函数使用
#!/bin/bash function Fun_Name() { #function here echo "this is a function" } Fun_Name
- 转 sqlserver字段描述相关操作sql
可以自己查询系统表: SELECT o.name AS tableName, c.name AS columnName, p.[value] AS Description FROM sysproper ...
- vs2010 web 发布
1.在服务器上安装web deploy,这时iis中右侧功能中就多了“导入应用程序” 2.在代码的项目中,点击项目属性,将debug改为release,选择对应的平台.目标平台,主要用来区分32位还是 ...
- 类 Array Arraylist List Hashtable Dictionary
总结C# 集合类 Array Arraylist List Hashtable Dictionary Stack Queue 我们用的比较多的非泛型集合类主要有 ArrayList类 和 HashT ...
- Netbeans IDE配置
- C#中邮件的发送基本操作
本地配置的邮箱:http://localhost:6080/index.php //邮件的收发需要用到两个类 //1.用来创建一封邮件对象 //1.MailMessage 添加对 usin ...