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) 是通过一些特殊字符的排列,用以查找.删除.替换一行或多行文字字符: ...
随机推荐
- cocos2d-x创建的九宫图变白块
用UIImageView 创建的九宫图变白,直接用CCScale9Sprite创建的也是变白,找了半天原来是自己为了调整UI方便,开启了CCSprite边缘画线导致的,在ccConfig.h下 宏CC ...
- JAVA操作Excel时文字自适应单元格的宽度设置方法
使用JAVA操作Excel通常都使用JXL,方法很简单网上也有很多的教程,然后往往一些细节性的问题却导致我们这些Programmer苦恼不已.这两天帮一个朋友做一个Excel表格自动生成的小软件,就遇 ...
- windows 与Linux 互传文件
下载putty,将putty的安装路径添加到Windows的环境变量中: 我的电脑->属性->高级->环境变量->系统变量,双击其中的Path,在分号后添加putty的 ...
- Android中多线程下载列表的封装实现(含进度反馈)
来源:http://blog.csdn.net/u011638883/article/details/17347015 实现了一下Android中的文件多线程下载模块,支持自定义线程数.断点续传.下载 ...
- shell入门之expr的使用 分类: 学习笔记 linux ubuntu 2015-07-10 14:59 76人阅读 评论(1) 收藏
在expr中加减乘除的使用,脚本如下: #!/bin/sh #a test about expr v1=`expr 5 + 6` echo "$v1" echo `expr 3 + ...
- PHP 开发API接口 注册,登录,查询用户资料
服务端 <?php require 'conn.php'; header('Content-Type:text/html;charset=utf-8'); $action = $_GET['ac ...
- UIView下使用Animation控制动画
转载自:http://blog.csdn.net/xunyn/article/details/8128031 动画效果是IOS界面重要的特色之一,其中CAAnimation是所有动画对象的抽象父类,作 ...
- SQL三大范式
第一范式:确保每列的原子性. 如果每列(或者每个属性)都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式. 例如:顾客表(姓名.编号.地址.……)其中"地址"列还可 ...
- 文字和表单(checkbox/radio)元素垂直对齐方法,兼容Firefox和IE。
这几天在做表单时总会碰到复选框(checkbox)和单选框(radio)与文字不对齐的问题,要不是checkbox上浮了,要不是文字上浮.在前端开发过程中,单(复)选框和它们后面的提示文字在不进行任何 ...
- Java线程(学习整理)--4---一个简单的生产者、消费者模型
1.简单的小例子: 下面这个例子主要观察的是: 一个对象的wait()和notify()使用情况! 当一个对象调用了wait(),那么当前掌握该对象锁标记的线程,就会让出CPU的使用权,转而进入该对 ...