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) 是通过一些特殊字符的排列,用以查找.删除.替换一行或多行文字字符: ...
随机推荐
- Mina学习之IoBuffer
IoBuffer是一个被MINA体系所使用的字节数组.它是ByteBuffer的替代品,Mina不使用NIO的ByteBuffer有两个原因: 1. ByteBuffer没有提供更多有用的api,如f ...
- Windows Live Writer的Markdown插件
我新写了一个Windows Live Writer的Markdown插件,代码放在了github上. 介绍 这个项目是一个Windows Live Writer的Markdown插件.有了这个插件,你 ...
- Nginx系列~负载均衡服务器与WWW服务器的实现
上两讲主要是关于Nginx的环境的介绍,没有涉及到真正环境的开发,这次我们以一个实现的例子,来说明一下负载均衡服务器与WWW服务器的Nginx是如何配置的,并最终如何实现的. 如下是一个实际场景,一台 ...
- 【机房重构】SQL之视图
近期在重构机房收费系统,越往后就会越感觉到这里很多其它的是对之前学过知识(数据库,设计模式)的一种应用和回想.比方在登录功能中用到了抽象加反射,在学生下机中,我们能够用触发器来同一时候更新两个表.这里 ...
- Assigning retained object to unsafe property;object will be released after assignment
解决方法,将变量 @property (assign) UILabel *titleView; 改为 @property (retain) UILabel *titleView;
- asp.net模态窗口返回值
个人感觉模态窗口在做网站的时候,使用到的比较少,前段时间在做项目时要实现以模态窗口传值和接收返回值, 模态窗口传值实现比较简单,但是做好后发现在Chrome浏览器中接收不到返回值,修改好Chrome浏 ...
- Spring MVC返回json数据给Android端
原先做Android项目时,服务端接口一直是别人写的,自己拿来调用一下,但下个项目,接口也要自己搞定了,我想用Spring MVC框架来提供接口,这两天便抽空浅学了一下该框架以及该框架如何返回json ...
- 【读书笔记】管道和FIFO
管道 提供一个单路(单向)数据流,可以为两个不同进程提供进程间的通信手段 #include <unistd.h> ]); 返回两个文件描述符,fd[0](读) 和 fd[1](写) 管道间 ...
- oracle 报Ora-01008错误:oracle 并非所有变量都已绑定的原因.TO_number();动态执行select..into..语句时
1.sql_temp := 'UPDATE B38_back SET '||code||'=TO_NUMBER(nvl('||:NEW.BACAI||',0))+'||OnMonth || ' WHE ...
- left join 和 left outer join 有什么区别?
left join 是left outer join的简写,left join默认是outer属性的.outer join则会返回每个满足第一个(顶端)输入与第二个(底端)输入的联接的行.它还返回任何 ...