Phalcon 4 教程(2)--DevTools + Helloworld案例

1.简介
上一篇介绍了windows 8 下基于XAMPP的Phalcon 4 安装,本篇继续介绍devtools以及创建一个Helloworld的演示。这里,我们可以把Devtools看成是Phalcon专属的composer工具。截止2020.5.25,其v4版本仍然部分存在bug(后续创建controller中会进行演示)。根据海外大神的观点,其可以跳过不用devtools的。不过,方便起见,仍然建议安装。

2.安装Composer
Devtools有几种不同的安装方式,这里借助composer进行。
首先,安装composer
在这里插入图片描述

安装完毕后,启动windows命令行,输入composer命令,显示如下,表明安装成功。
在这里插入图片描述
3.借助composer安装Devtools
打开windows命令行,输入composer global require phalcon/devtools,如下:
在这里插入图片描述
继续在命令行中输入phalcon, 显示如下,至此,devtools安装完毕
在这里插入图片描述
4.创建一个Helloworld
首先,命令行进入xampp\htdocs,输入phalcon create-project store,这里的store是要建立的project的名称,可以换成你的名称。
在这里插入图片描述
打开vscode查看一下store文件夹内容:
在这里插入图片描述
浏览器输入localhost/store/,结果如下:
在这里插入图片描述
这里也是我认为devtools仍然需要完善的一个bug,其原因在于Phalcon 4把store当成了一个controller,而迄今为止文件夹中还没有创建该controller。所以,会报找不到的错。个人认为这个设计欠妥。不过没关系,让我们把它强行改成helloworld即可。修改public/index.php的代码如下:

<?php
declare(strict_types=1);

use Phalcon\Di\FactoryDefault;

error_reporting(E_ALL);

define('BASE_PATH', dirname(__DIR__));
define('APP_PATH', BASE_PATH . '/app');

try {
    /**
     * The FactoryDefault Dependency Injector automatically registers
     * the services that provide a full stack framework.
     */
    $di = new FactoryDefault();

    /**
     * Read services
     */
    include APP_PATH . '/config/services.php';

    /**
     * Handle routes
     */
    include APP_PATH . '/config/router.php';

    /**
     * Get config service for use in inline setup below
     */
    $config = $di->getConfig();

    /**
     * Include Autoloader
     */
    include APP_PATH . '/config/loader.php';

    /**
     * Handle the request
     */
    $application = new \Phalcon\Mvc\Application($di);

    //echo $application->handle($_SERVER['REQUEST_URI'])->getContent();
    echo 'Hello phalcon world';
} catch (\Exception $e) {
    echo $e->getMessage() . '<br>';
    echo '<pre>' . $e->getTraceAsString() . '</pre>';
}

再次进入localhost/store即可显示一个Hello phalcon world 的提示。
在这里插入图片描述

至此,一个helloworld演示完毕。但是,这里的helloworld的做法并不规范,后续会详细讲解规范的处理方式。
如有错误,欢迎指正。

后记

我又查了phalcon 4 #0 [internal function]: Phalcon\Mvc\Dispatcher->throwDispatchException(’ …’, 2)的报错原因,发现这个在phalcon 4 中很普遍。解决方案在修改方法
修改/public/index.php中的43行:

echo $application->handle($_SERVER['REQUEST_URI'])->getContent();
//修改成
echo $application->handle($_GET['_url'] ?? '/')->getContent();

同时,app/config/config.php中28行改成

        'baseUri'        => preg_replace('/public([\/\\\\])index.php$/', '', $_SERVER["PHP_SELF"]),

这样就可以了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值