一、php环境的搭建

在编写php前,先搭建php环境,我选择了一站式安装软件WampServer,WampServer的下载地址:http://www.wampserver.com/

WampServer的最新版本2.5内置:

Apache 2.4.9

PHP 5.5.12

MySQL 5.6.17

安装也非常简单,一路下一步,搞定!安装成功以后,访问http://localhost/会显示如下内容:

二、php开发框架选择

php的第三方开发框架有很多,我通过对比,选择了一款简单容易操作的框架thinkphp,thinkphp的官方网站为:http://www.thinkphp.cn/

thinkphp的最新版本为5.0,不过我这里选择了应用比较广泛的3.2.3,官方提供了两个版本的下载,一个是核心版,另一个是完整版。看别人的意思就是高手用核心版,普通开发人员用完整版,作为一个小菜,我选择完整版。

我的wamp安装在D:\Program Files\wamp目录,这里我把thinkphp目录解压到D:\Program Files\wamp\www\thinkphp目录下,访问http://localhost/thinkphp,如果出现如下内容,表示thinkphp安装成功:

三、用thinkphp编写hello world

访问到thinkphp的首页面后,thinkphp会自动在thinkphp/Application目录下创建Home文件夹,并在Home文件夹下创建一系列的文件

我们刚才访问到的首页,其实就是在访问thinkphp/Application/Home/Controller/IndexController.class.php

下面我们来写我们自己的代码。

在thinkphp/Application/Home/Controller/目录下创建Demo1Controller.class.php文件,内容如下:

<?php
namespace Home\Controller;
use Think\Controller; class Demo1Controller extends Controller {
public function index(){
echo 'hello world';
}
}

对应的访问地址为:http://localhost/thinkphp/index.php/Home/Demo1/index

激动人心的时刻出现了,那就是我的第一段php代码:hello world出现了

访问地址的规则为http://域名/项目名/入口文件/模块名/方法名/键1/值1/键2/值2

index.php 为入口文件

Home/Demo1 为模块名

index为方法名

貌似是这么对应的?暂且认为是这样的吧。

反正至少可以庆祝一下了,用php写出了自己的hello world

四、以MVC的方式展示hello world

把以上的代码稍作修改,把后台代码放在Controller中,视图展示放在View中

Demo1Controller.class.php代码修改如下:

<?php
namespace Home\Controller;
use Think\Controller; class Demo1Controller extends Controller {
public function index(){
echo 'hello world';
} public function test1(){
$this->assign('name','hello world');
$this->display();
}
}

然后在thinkphp/Application/Home/View/目录下创建Demo1文件夹,Demo1文件夹下创建文件test1.html文件,内容如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Demo1</title>
</head>
<body>
{$name}!
</body>
</html>

对应的访问地址为:http://localhost/thinkphp/index.php/Home/Demo1/test1

这样,以MVC的方式显示hello world的代码就已经完成了。

用php编写我的第一段代码:hello world的更多相关文章

  1. shell编程学习笔记(一):编写我的第一段代码

    目前在学习Shell编程,我会把我的学习笔记记录在这里.大神可以直接略过~ 嗯,第一段代码,肯定是要输出Hello World了~ 以下蓝色字体的内容为linux命令,红色字体的内容为输出的内容: # ...

  2. 初学Java,第一段代码

    public class myapp { public static void main(String[] args) { // TODO Auto-generated method stub Sys ...

  3. 我的第一段ionic代码

    ionic是基于angularjs的前端框架,用于实现移动app. 下面是第一段代码,先贴代码,有时间再整理: demo1.htm <!DOCTYPE html> <html ng- ...

  4. HTML5 & CSS3初学者指南(1) – 编写第一行代码

    介绍 网络时代已经到来.现在对人们来说,每天上网冲浪已经成为一种最为常见的行为. 在网页浏览器中输入一段文本地址,就像http://www.codeproject.com,等待一下,网页就加载到浏览器 ...

  5. python学习笔记1--python简介和第一行代码编写

    一.什么是python? python是一种面向对象,解释型语言,它语法简介,容易学习.本节博客就来说说本人学习python的心得体会. 二.python环境安装 目前python版本有python2 ...

  6. 我的第一段jQuery代码

    说起 jQuery,很多人可能觉得,不算什么,就是个js类库.而,对于我,下面这几行代码,是一个新的开始. 多年来,我一直在使用MooTools ,他面向对象,写起来结构清晰分明,都是在原生js的基础 ...

  7. 编写更好的C#代码

    引言 开发人员总是喜欢就编码规范进行争论,但更重要的是如何能够在项目中自始至终地遵循编码规范,以保证项目代码的一致性.并且团队中的所有人都需要明确编码规范所起到的作用.在这篇文章中,我会介绍一些在我多 ...

  8. 用Flow编写更好的js代码

    关于本文: 原文地址 翻译地址 译者:野草 本文发表于前端早读课[第897期] 你是否经常在debug那些简单可避免的bug?可能你给函数传参的时候搞错了参数的顺序,或者本来应该传个Number类型的 ...

  9. 第一行代码:以太坊(2)-使用Solidity语言开发和测试智能合约

    智能合约是以太坊的核心之一,用户可以利用智能合约实现更灵活的代币以及其他DApp.不过在深入讲解如何开发智能合约之前,需要先介绍一下以太坊中用于开发智能合约的Solidity语言,以及相关的开发和测试 ...

随机推荐

  1. 用于解析通过JS的escape函数加密过的数据

    function js_unescape($str) { $ret = ''; $len = strlen($str); for ($i = 0; $i < $len; $i++) { if ( ...

  2. OpenStack openvswitch 实践

    先说下我这架构就是2个节点控制节点+计算节点,网络这采用ovs方法没有路由,就是二层打通并且可以多vlan. 网络架构图: eth0网卡走trunk,走多vlan.从dashboard上创建不同的vl ...

  3. POJ 3228 [并查集]

    题目链接:[http://poj.org/problem?id=3228] 题意:给出n个村庄,每个村庄有金矿和仓库,然后给出m条边连接着这个村子.问题是把所有的金矿都移动到仓库里所要经过的路径的最大 ...

  4. 理解面向消息中间件及JMS 以及 ActiveMQ例子

    为了帮助你理解ActiveMQ的意义,了解企业消息传送背景和历史是很重要的.讨论完企业消息传送,你将可以通过一个小例子了解JMS及其使用.这章的目的是简要回顾企业消息传送及JMS规范.如果你已经熟悉这 ...

  5. PHP -- 配置Apache遇到的问题

    在本地电脑用XAMPP+php+mysql配置项目的时候,能够正常运行. 但是通过远程进入VPN配置的时候,配置方式一样,但是老是无法显示. 后来看了错误日志后,发现之前在没完全配置完的时候运行,生成 ...

  6. MS SQL语句优化

    MS SQL Server查询优化方法查询速度慢的原因很多,常见如下几种 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计 ...

  7. [转]Android中的android:layout_width和android:width

      android:width 其实是定义控件上面的文本(TextView) 的宽度,当然这个宽度也是和 android:layout_width 配合起来作用的,如果 android:layout_ ...

  8. CodeM资格赛2

    题目描述 组委会正在为美团点评CodeM大赛的决赛设计新赛制. 比赛有 n 个人参加(其中 n 为2的幂),每个参赛者根据资格赛和预赛.复赛的成绩,会有不同的积分.比赛采取锦标赛赛制,分轮次进行,设某 ...

  9. SDRAM interface slashes pin count

    Many designs need deep buffering but don't require ultrahigh-memory bandwidth. Examples include imag ...

  10. DOM节点中属性nodeName、nodeType和nodeValue的区别 < Delphi >

    http://msdn.microsoft.com/zh-cn/library/vstudio/hf9hbf87.aspx <?xml version="1.0"?> ...