LotusPhp起步:经典的HelloWorld
写了几篇LotusPhp,一直没有跑个程序,感觉好像步骤有点错,所以先上个经典的Demo,HelloWorld吧
先按推荐目录建好文件夹,如果懒的建,下面有下载的Demo包,解压就可以用,因为简单,也没有用样式,所以解压到任何目录都可以跑的起来。
先不用考虑怎么用,关键的文件其实就是
runtime/app/frontend/action/default-index.php和runtime/app/frontend/view/default-index.php
Demo主要应用了MVC,及一些基本的文件夹设置,以后的范例基本会在Demo的基础上建立
现在来书写index.php的内容,这个是所有程序文件的引导文件,同样LotusPhp也是单入口
<?php
ob_start();
header('Content-Type:text/html;charset=UTF-8'); //防止直接打开的参数
define("LOTUS", true); //定义根目录
define("ROOT",dirname(__FILE__)); $lotusHome = ROOT.'/framework/';
include($lotusHome . "Lotus.php");
$lotus = new Lotus; //是否处于开发模式
$lotus->devMode = true; //缓存目录
$lotus->defaultStoreDir = ROOT.'/cache/';
$lotus->option['proj_dir'] = ROOT.'/runtime/';
$lotus->option['app_name'] = 'frontend';
$lotus->init();
接下来书写
runtime/app/frontend/action/default-index.php
<?php
class DefaultIndexAction extends LtAction
{
public function execute()
{
$this->responseType = 'tpl';
$this->data='HelloWorld';
}
}
runtime/app/frontend/view/default-index.php
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>{$this->data}</title>
</head> <body>
{$this->data}
</body>
</html>
一些常见的错误分析:
Warning: mkdir() [function.mkdir]: File exists in E:\web\framework\StoreFile.php on line 76 Warning: file_put_contents(C:/Windows/TEMP/Lt-parsed-token-1511998383/3d/9b/3d9b92c67d278abd5ad503281dd465fa) [function.file-put-contents]: failed to open stream: No such file or directory in E:\web\framework\StoreFile.php on line 78
这种情况多半是由于php版本老,是5.2的或者是会员权限不够,无法在临时目录生成文件造成的,最好的解决办法是修改会员权限或者是替换为5.3以上php版本,如果无法解决,私信我即可,我看到会回复
Warning: include(E:\web\runtime\/conf/conf_dev.php) [function.include]: failed to open stream: No such file or directory in E:\web\runtime\app\frontend\conf\conf_dev.php on line 6
这种情况是因为conf目录建的不对或者是conf.php和conf_dev.php文件导致,下面列出这2个文件的内容,所有的lotusphp应用目录下,都应该有符合规范的conf目录,子目录和这2个文件
conf.php
<?php
$config = array(); foreach(glob(dirname(__FILE__) . '/standard/*.php') as $confFile)
{
if (__FILE__ != $confFile)
{
include($confFile);
}
} return $config;
conf_dev.php
<?php
/**
* 开发模式下先读取standard配置,
* 然后读取dev配置,并覆盖standard的部分配置
*/
include(dirname(__FILE__) .'/conf.php'); foreach(glob(dirname(__FILE__) . '/dev/*.php') as $confFile)
{
if (__FILE__ != $confFile)
{
include($confFile);
}
} return $config;
如果都正确,那这时候运行index.php就会出现熟悉的HelloWorld了,搞定。
附件下载:demo.rar
LotusPhp起步:经典的HelloWorld的更多相关文章
- scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld
scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld 学习了: http://blog.csdn.net/wangmuming/article/details/3407911 ...
- SpringMVC学习系列(2) 之 经典的HelloWorld实现
前一篇简单介绍了Spring MVC的一些知识,下面就要开始学习如何把Spring MVC运用到具体的项目中去. 首先还是从一个简单的Hello World项目说起: 我机器的开发环境为: Ubunt ...
- SpringMVC学习(2):经典的HelloWorld实现
前一篇简单介绍了Spring MVC的一些知识,下面就要开始学习如何把Spring MVC运用到具体的项目中去. 首先还是从一个简单的Hello World项目说起: 我机器的开发环境为: Ubunt ...
- SpringMVC(2)经典的HelloWorld实现
我机器的开发环境为: Ubuntu12.04(不同操作系统对本系列项目没有影响): 开发工具:Eclipse For JavaEE: 数据库:MySql5.5.35; 运行环境:TomCat V7.0 ...
- Java入门记(一):折腾HelloWorld
HelloWorld,学习每门语言的第一步.有人戏称,这些年的编程生涯就是学习各种语言的HelloWorld,不知是自谦还是自嘲.目前所在的公司使用Java作为主要开发语言,我进行语言转换也大半年了, ...
- iPhone开发【一】从HelloWorld開始
转载请注明出处,原文网址:http://blog.csdn.net/m_changgong/article/details/8013553 作者:张燕广 从经典的HelloWorld開始踏入iPhon ...
- iPhone发展【一】从HelloWorld开始
转载请注明出处.原文网址:http://blog.csdn.net/m_changgong/article/details/8013553 作者:张燕广 从经典的HelloWorld開始踏入iPhon ...
- javascript快速入门1--JavaScript前世今生,HelloWorld与开发环境
JavaScript历史 大概在1992年,一家称作Nombas的公司开始开发一种叫做C--(C-minus-minus,简称Cmm)的嵌入式脚本语言. Cmm背后的理念很简单:一个足够强大可以替代宏 ...
- Scala & IntelliJ IDEA:环境搭建、helloworld
--------------------- 前言 --------------------- 项目关系,希望用Spark GraphX做数据分析及图像展示,但前提是得回spark:spark是基于 ...
随机推荐
- SecureCRT的背景和文字颜色的修改
options->;session options->;emulation->;terminal选择linux(相应的服务器系统)ansi color 打上钩options-> ...
- (easy)LeetCode 202.Happy Number
Write an algorithm to determine if a number is "happy". A happy number is a number defined ...
- 303. Range Sum Query - Immutable
Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive ...
- jQuery学习笔记----入门
基础语法是:$(selector).action() 美元符号定义 jQuery 选择符(selector)“查询”和“查找” HTML 元素 jQuery 的 action() 执行对元素的操作
- DNS拦截的处理
在用webSocket来实现长连接时,我们的链接对象使用了域名.但是再某些省份的网络下,发生了DNS拦截.踹改.导致使用某个域名链接,发生连接不上的现象.[解决方案] 在多次尝试原有域名不能使用的情况 ...
- 常见的MIME类型
超文本标记语言文本 .htm,.html text/html 普通文本 .txt text/plain GIF图形 .gif image/gif JPEG图形 .ipeg,.jpg image/jpe ...
- 海外支付:遍布全球的Paypal
海外支付:遍布全球的Paypal 吴剑 2015-11-26 原创文章,转载必需注明出处:http://www.cnblogs.com/wu-jian 吴剑 http://www.cnblogs.co ...
- 在 Visual Studio 2013 中使用 Grunt, Bower 和 NPM
在 Visual Studio 2015 中提供了对于 Grunt 和 Gulp 的内置支持,在 Visual Studio 2013 中怎么办呢?微软将 2015 中的特性作为几个独立的扩展发布出来 ...
- VC++中,如何定义callback函数和它的触发事件?
对于回调函数的编写始终是写特殊处理功能程序时用到的技巧之一.先介绍一下回调的使用基本方法与原理. 1.在这里设:回调函数为A()(这是最简单的情况,不带参数,但我们应用的实际情况常常很会复杂),使用回 ...
- 学习总结 java 输入输出流
思维导图 代码实际演示 package com.hanqi.io; import java.io.*; public class Test1 { public static void main(Str ...