php完整教程

ThinkPHP5的环境搭建与程序安装

thinkphp框架的使用需要安装php、apache和sql,在windows下可以使用phpStudy来快速搭建运行环境,适合新手在家里电脑操作学习。

首先网上搜索phpStudy下载后是一个压缩包,打开后直接点击phpStudy*** ***位置是版本号,直接全部默认下一步即可。

解压安装phpStudy

安装完成后,点击“切换版本”来选择我们需要的php版本,最新的php是7。

phpStudy版本切换

点击切换版本后会出现php+apache 、php+Nginx、php+IIS的选择,如果安装了iis的话,可以选择iis,这里我们使用php5.6+Apache的版本。

phpStudy设置php5.6+Apache

由于5.5以上版本需要安装vc运行库,所以会出现如下提示,点击确定后会弹出一个网页,网页中有对应运行库的下载地址。

提示缺少vc运行库

网页中有对应版本的下载说明,点击下载的地址后就能够下载对应的程序,也可以自行百度vc11 进行下载。

下载vc11

下载后点击vc11 32位的压缩包,如果你的电脑是64位的,需要下载64的vc11。直接双击安装即可,没有多余设置。

vc11

接下来下载php框架thinkphp的程序,进入图片中地址可以下载到thinkPHP5.0.20版本的完整版。

thinkPHP5下载

下载完成后,我们需要建立一个站点用来存放程序文件,在phpStudy中点击“其他选项“ -> 站点域名管理。

phpStudy建立站点

输入域名,这里是本地,可以输入127.0.0.1或者localhost都行,网站目录可以是你硬盘上的任何文件夹,默认文职是phpstudy安装目录下的WWW文件夹,点击新增后再点击保存设置并生成配置文件即可。

phpStudy设置站点属性

下面来修改一下站点的运行目录,由于thinkPHP的入口是在public下,所以这里需要修改一下,点击”其他设置“->打开配置文件->vhosts-conf

vhosts-conf

配置文件会以一个文本文件的方式打开,你会看到documentroot和directory的路径是一样的,只需要在documentroot后面加上\public就可以了,点击保存。

vhosts,conf文件内容

修改设置后需要重启一下apache才能生效。

重启phpStudy

将下载到的thinkphp5解压,可以得到下图中的内容,把所有文件复制到网站的根目录,也就是之前设置中那个WWW\web的文件夹内。

thinkphp所有文件

到这里,就可以去试试了,在浏览器中输入127.0.0.1会得到下面这个内容,如果出现,说明已经安装成功了。

thinkPHP安装成功

展开
收起

ThinkPHP5框架使用快速入门

ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。

一、安装ThinkPHP5

安装需求:PHP版本不得小于5.4;

1、从官网进行下载安装

2、通过composer进行安装

如果还未安装composer,请先安装composer并配置环境变量

运行如下命令,进行安装:

composer create-project topthink/think=5.0.* tp5 --prefer-dist

3、通过git安装

3.1、运行如下命令,安装thinkphp的应用项目

git clone https://github.com/top-think/think tp5

安装成功后的界面:如下图所示

3.2、进入到刚才已下载的tp5目录下,运行如下命令,安装thinkphp的核心框架

git clone https://github.com/top-think/framework thinkphp

安装成功后的界面:如下图所示

安装完成,验证是否安装成功,在浏览器中输入:http://hostname/tp5/public/

如果浏览器显示如下图所示,则说明框架安装成功。

二、目录结构框架的目录结构,如下图所示:

application:应用目录

index:模块目录

index/config.php:模块配置文件

index/common.php:模块公共函数文件

index/controller:控制器目录

index/model:模型目录

index/view:视图目录

config.php:应用配置文件

command.php:命令工具配置文件

common.php:应用公共函数文件

tags.php:应用行为扩展定义文件

extend:扩展类库目录

public:WEB 部署目录(对外访问目录)

static:静态资源存放目录(css,js,image)

index.php:应用入口文件

.htaccess:用于apache重写

router.php:快速测试文件

runtime:应用的运行时目录

vendor:通过composer安装的第三方类库目录

thinkphp:系统核心目录

lang:系统语言包目录

library:框架核心类库目录

tpl:系统模板目录

base.php:基础定义文件

route:路由配置目录

三、ThinkPHP框架最基本的架构

thinkphp是基于MVC模式开发的,业务逻辑、数据、界面显示分离,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

1、入口文件

用户发起的请求都会经过应用的入口文件,通常是 public/index.php文件。入口文件的内容如下:

在入口文件index.php中加载了基础文件base.php文件,在base.php中干了这样一些事情:

载入Loader类

注册自动加载

注册错误和异常处理机制

实现日志接口

注册类库别名

加载完基础文件之后,最后在index.php中执行应用并响应。

2、应用

ThinkPHP的应用是一个管理系统架构及生命周期的对象,由系统创建完成,应用通常在入口文件中被调用和执行,每个应用都具有自己独立的模块、config配置文件以及common公共函数文件。

3、模块

一个应用是可能是由多个模块组成的,通俗的来说,这些模块即为该应用目录下面的一个个的子目录,每个模块都有自己独立的MVC结构、config配置文件以及common公共函数文件。

注:模块名称请避免使用PHP保留关键字,否则会造成系统错误。

4、控制器

控制器主要负责接收发送过来的请求,并调用相关的模型业务逻辑的数据处理,并最终将用户请求数据渲染到视图页面上。

5、模型

模型类通常完成实际的业务逻辑和数据封装,并返回和格式无关的数据。在定义模型时,要注意和表名对应,因为框架中的模型会自动对应数据库中的数据表。在ThinkPHP中模型类的命名规则是除去表前缀的数据表名称,命名方式采用的驼峰命名法,而且模型的首字母要大写。

6、视图

视图接收从控制器渲染过来的数据,将数据渲染的成用户可见的页面。

7、命名空间

命名空间是程序设计者命名的内存区域,程序设计者根据需指定一些有名字的空间域,把一些全局实体分别存放到各个命名空间中,从而与其他全局实体分隔开。

通俗的说,每个名字空间都是一个名字空间域,存放在名字空间域中的全局实体只在本空间域内有效。名字空间对全局实体加以域的限制,从而合理的解决命名冲突。

展开
收起

「php面试」php魔法函数与魔法变量详解及实例使用教程

php的语法中,有一些系统自带的方法名,均以双下划线开头,它会在特定的情况下被调用。即所谓的魔法函数。

魔术函数

1。__construct()

实例化对象时被调用, 当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用。

2。__destruct() 当删除一个对象或对象操作终止时被调用。

3。__call() 对象调用某个方法, 若方法存在,则直接调用; 若不存在,则会去调用__call函数。

4。__get() 读取一个对象的属性时, 若属性存在,则直接返回属性值; 若不存在,则会调用__get函数。

5。__set() 设置一个对象的属性时, 若属性存在,则直接赋值; 若不存在,则会调用__set函数。

面向对象编程中使用频率很高的两个方法.当设置和获取对象的属性不允许访问时性,此方法会被调用。一定注意是不存在或不允许被读写时才会被调用。

因此对于一个对象,其属性不确定时,用这两个方法效果很好。

__get($name) 获取对象不存在的属性或无法访问的属性时调用.$name表示要获取的属性名

__set($name, $value) 设置对象不存在的属性或无法访问的属性时调用.$name表示要设置的属性名,$value表示要设置的值.

//例如:我们可以构建一个不确定属性的数据记录类

class Record {

protected $_data;

public function __get($name)

{

if (isset($this->_data[$name])) {

return $this->_data;

}

return false;

}

public function __set($name, $value)

{

$this->_data = $value;

}

}

$record = new Record();

$record->name = 'andrew';

echo 'My name is '.$record->name.PHP_EOL;

这两个方法用得比较少些。当调用方法isset()判断对象是否存在某属性, 调用unset()注销某属性时。且当这些属性不存在或不可访问时,会分别调用__isset()和__unset()方法

与前面的__get()和__set()略同。都是某属性不存在或不可访问时被调用

__isset($name) 当调用方法isset()方法判断不可访问的类属性时调用.$name表示属性名.

__unset($name) 当调用方法unset()方法删除不可访问的类属性时调用.$name表示属性名.

6。__toString() 打印一个对象的时被调用。如echo $obj;或print $obj;

classInfo{

publicfunction__toString()

{

return"info";

}

}

$info = new Info();

echo $info.PHP_EOL;

7。__clone() 克隆对象时被调用。如:$t=new Test();$t1=clone $t;

8。__sleep() serialize之前被调用。若对象比较大,想删减一点东东再序列化,可考虑一下此函数。

9。__wakeup() unserialize时被调用,做些对象的初始化工作。

__sleep() 和 __wakeup()

这两个方法,咋一看,就是睡觉和唤醒嘛。那跟对象有什么关系?有时候该用的时候也想不起来。其实,我们简单点记,在php中有一个让对象睡觉的方法,叫searialize(),

它会将对象的各属性序列化以方便保存起来。而unsearialize()方法是将保存的序列化的数据解开变成对象。也叫唤醒。相对应的,当睡觉时,php会调用__sleep()方法,它

的返回值必须是一个数组,表示需要保存的属性项, 对于文件句柄,数据库连接等资源类型的数据是不能被序列化保存的。同理唤醒对象时,php会调用__wakeup()方法,

但与__sleep()不同的是,它返回值为空。被保存的属性都会被解开。那它有什么用呢?刚我们说了,searialize是不能保存资源的。那么唤醒时如果我们想用到这些资源怎么

办?回答很肯定,重新创建?那在哪里创建合适呢?当然是__wakeup()方法里面,因为每次唤醒时都会调用此方法嘛。这下我们很清楚这两个方法的用途了。

__sleep() 当调用searialize()方法时调用,返回值为数组,表示需要序列化的数据项.

__wakeup() 当调用unsearizlie()方法时调用。一般用来在唤醒时初始化资源对象.

//例如我们有一个用户类,用户名和性别都是类属性。用户的密码存在文件中

Class User {

public $username;

public $sex;

public $passFile;

private $_password;

public function __construct($username, $sex, $passFile)

{

$this->username = $username;

$this->sex = $sex;

$this->passFile = $passFile;

$this->_password = file_get_contents($passFile);

}

public function getPassword()

{

return $this->_password;

}

public function __sleep()

{

return array(

'username', 'sex', 'passFile',

);

}

public function __wakeup()

{

$this->_password = file_get_contents($this->passFile);

}

}

$user = new User('andrew', 'male', 'pass.data');

$serializeData = serialize($user);

echo $serializeData.PHP_EOL;

$user = unserialize($serializeData);

echo $user->getPassword().PHP_EOL;

10。__isset() 检测一个对象的属性是否存在时被调用。如:isset($c->name)。

11。__unset() unset一个对象的属性时被调用。如:unset($c->name)。

12。__set_state() 调用var_export时,被调用。用__set_state的返回值做为var_export的返回值。

13。__autoload() 实例化一个对象时,如果对应的类不存在,则该方法被调用。

魔术常量

1。__LINE__ 返回文件中的当前行号。

2。__FILE__ 返回文件的完整路径和文件名。如果用在包含文件中,则返回包含文件名。自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径,而在此之前的版本有时会包含一个相对路径。

3。__FUNCTION__ 返回函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。

4。__CLASS__ 返回类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。

5。__METHOD__ 返回类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。

展开
收起

使用phpenv集成环境搭建dedecms本地网站,安装设置教程

本地集成PHP环境软件有太多,之前特别钟爱PHPnow这个小软件,因为无插件无广告,最重要的是占用电脑资源小,即使是配置很低的电脑也可以带得动,但是作者不更新了,PHP版本和MySQL版本都太低,自己升级实在太麻烦。于是找到了phpenv这个PHP集成环境,使用了几天感觉已经爱上了,相比其他的PHPstudy、wamp等集成环境,个人认为这是所有集成环境中最好使用的。

phpenv支持的PHP版本从5.2~7.4最新版都有,MySQL数据库从5.0~8.0也都可以,同时还有Apache,nginx和iis三大web服务器可随意切换,memcached和Redis也集成了,对于PHP版本有不同要求的本地测试环境可以说是太方便了,能够很方便地为不同的网站配置所需的PHP版本和web服务器,而且只需要安装就可以使用,无需额外复杂的配置,即使是新手不懂环境安装的小白也可以很好的驾驭。还有一个优点就是不会占用电脑太多资源,开启phpenv集成环境后,不会明显感觉电脑卡,这对于我这样的电脑配置不高的人可是福音啊,所以推荐使用phpenv。

phpenv的使用也非常简单,首先去phpenv官方下载安装包,然后将phpenv安装在D盘,安装过程中没有特殊说明,只需要一直下一步直到完成即可。安装好phpenv集成环境之后,你会在安装目录看到有一个www的文件夹,这个文件夹就是用来存放网站程序的,去dedecms官方下载完整版utf8编码的安装包,解压缩后将upload文件夹拷贝到phpenv安装目录下的www文件夹里面,将upload文件夹重命名为你想要在本地搭建测试环境的一个域名(比如v2-asd.com),这里这样命名是为了方便识别多个网站,但是千万不要使用可以正常访问的网站域名。

点击桌面上的phpenv快捷方式启动,首先配置一下host,下图所示,点工具栏上的“工具”,下拉中选择“配置hosts”。

配置phpenv hosts文件

弹出来的编辑窗口里面,在最后添加一行“127.0.0.1,打一个空格,后面填写你要本地访问的域名”,添加完成之后点左上角的那个保存按钮保存,关闭对话框,这个文件的路径默认在C:\Windows\System32\drivers\etc里面。

在hosts文件中添加域名

回到phpenv的主界面上,点站点管理,会进入所有的站点列表页面,在这里可以对站点进行增加、删除或修改,在底部有一个“增加”按钮,点击新建站点。

phpenv站点管理phpenv新增站点

在“网站域名”这里填写前面添加在hosts文件中的域名,网站目录这里选择phpenv安装中前面拷贝到www文件夹里面并且重命名的那个文件夹,PHP版本可以选择已经安装了的版本,下拉即可看到,设置好了之后点“新增”。

phpenv新增网站

完之后就可以看到新增加的站点了,如下图所示。

增加phpenv站点预览

上面的步骤完成之后关闭窗口,回到phpenv主界面上面,点“启动”按钮,所有的配置就绪,启动环境,默认是Apache+MySQL,使用默认的方式就行。

启动phpenv环境

打开浏览器,在地址栏输入前面预先设置好的域名,这时会自动跳转到dedecms的安装界面,把同意安装协议前面的对勾选上,点“继续”安装。

phpenv环境下的dedecms安装

进入环境检测,这一步主要是检查安装环境有没有问题,如果出现有红颜色叉的说明要修改环境的配置,这里面只要全部都是绿色的对勾,说明所有的配置完全正确,点继续即可。

dedecms安装环境检测

进入网站信息的配置,这一步比较重要,“默认模块”这里一个都不要选择,等安装完成之后再去后台安装即可;在数据库信息这里,phpenv默认的数据库用户名和密码都是是root;如果你打算将这个系统的数据用于实际的网站运营,数据表前缀一定要修改,把默认的“dede”改成其他的,比如改为“mydf_”这样的,有利于网站的安全,在安装的时候设置好,安装完成了再想修改数据表前缀比较麻烦,这是经验;数据库名称可以使用默认的,也可以自己添加一个。

dedecms安装设置数据库信息

继续设置网站管理员用户名和密码,默认都是admin,修改成自己的,只是本地测试的话使用默认就可以了,如果要把网站用于运营,这时候就直接设置成你的用户名和密码,避免安装好了再修改的麻烦。在网站名称这里填写你的网站名称,填写邮箱;需要特别说明的是网站网址,如果是在服务器上安装网站程序,你的网址使用了ssl证书,即https方式访问,要把网站网址后面的URL加上https,不然安装完了你会无法访问网站的,一般情况下默认即可。

dedecms安装管理员信息设置

如果只是本地安装学习可以把“体验数据”后面的对勾选上,安装体验数据,体验数据会使网站不安全,正式运营的网站不要安装,点“继续”就开始安装了。整个安装过程会非常快,安装完成之后会进入下面的界面,点“登录网站后台”按钮去网站后台。

dedecms安装完毕

输入用户名、密码和验证码,登录网站后台:

dedecms网站后台登录界面

登录后台之后就可以看到各种设置等选项了,在phpenv集成环境上安装dedecms系统就全部完成了。相对来说安装方法比较简单,而phpenv环境的使用主要在于熟悉过程,如果对其他的如phpstudy等集成环境有使用过,那么对于phpenv也会很快上手,欢迎关注交流。

展开
收起

PHP-X 系列教程:内置函数的使用

本文主要介绍PHP-X内置函数的使用,在PHP扩展开发中,会经常用到这些内置函数,PHP-X的封装,使得调用这些函数像PHP代码一样简单。

展开
收起

PhpStudy V8.0如何建立WordPress网站?附图文教程

前面 boke112 跟大家分享了『PhpStudy V8.0 如何建立 ZBlogPHP 网站?附图文教程』,今天我们就继续以建立 WordPress 站点为例说明一下 PhpStudy V8.0 是如何建立 WordPress 网站的?

1、前往WordPress 官网下载中文最新版 wordpress-5.2.3-zh_CN,或点此直接下载。然后将 wordpress-5.2.3-zh_CN 压缩包拷贝到 WWW 根目录并解压得到一个 wordpress 文件夹,内含有 WordPress 建站所需的文件。

2、运行 PhpStudy V8.0 并启动 Apache 和 MySQL,点击“网站”>> 点击【创建网站】按钮 >> 在基本配置中输入域名(PS:可随意)>> 点击根目录右侧的【浏览】按钮选择我们第 1 步的 wordpress 文件夹 >> 可选择 PHP 版本,默认是 PHP7.3.4 >> 备注的话建议填写一下,如 WordPress 演示站之类的说明。具体如下图:

3、因为我们是第一次创建 WordPress 网站,所以在“创建环境”中勾选“创建数据库”,然后输入数据库名称、用户名和密码(PS:密码不得少于 6 位否则创建数据库失败),最后点击【确认】按钮。具体如下图所示:

稍等片刻出现“创建数据库完成”提示后点击【确认】按钮即可成功创建网站(PS:建立 WordPress 网站还需要继续安装才行,请看第 4 步)。

至于其他的选项,如高级配置、安全配置、错误页面、伪静态和其他等,因为只是在本地测试网站所以可以不用理会,有意的可自行点击来查看和设置。

4、点击刚才创建的网站右侧的“管理 > 打开网站”即可打开 WordPress 站点的安装程序进行傻瓜式安装。如果不懂得 WordPress 安装的请继续往下看。

5、正常情况下,能够打开以下欢迎使用 WordPress 就表示可以正常安装 WordPress,我们只需要点击【现在就开始!】按钮即可。具体见下图:

6、根据第 3 步创建的数据库信息填写数据库连接信息,真实建站中,建议修改表前缀,如 wp_ 改为 boke112_,然后点击【提交】按钮 >> 点击【现在安装】按钮。

7、填写站点标题、站点管理员的用户名及密码、电子邮件,因为是本地测试网站,建议勾选“建议搜索引擎不索引本站点”(PS:真实建站的时候,如果站点内容还没有也建议勾选,站点正常的情况下不要勾选,事后可以在后台 >> 设置 >> 阅读中重新设置),然后点击【安装 WordPress】按钮即可成功安装 WordPress。具体见下图:

至此,我们已经成功安装 WordPress。点击【登录】按钮即可打开后台登录页面,输入第 7 步所填写的用户名及密码即可成功登录 WordPress 站点后台。

其实,WordPress 建站和 ZBlogPHP 建站都差不多,都是傻瓜式操作,根据步骤一步步操作即可成功建立相应网站。如果你是第一次接触 WordPress 的话,建议参阅『WordPress 新手入门教程』。

展开
收起

PHP环境部署伪静态教程

PHP伪静态

前言

在用PHP语言开发网站的时候,伪静态是一个绕不过去的一道坎,在PHP中设置伪静态对于老手来说是手到擒来,但是对于新手来说稍微有点难度,还没有掌握的小伙伴们不要着急,下面跟着小编一起来学习吧。

正文

一、Apache的伪静态配置

1、网站根目录下需要有 .htaccess 文件,没有则自己创建一个,内容为

<IfModule mod_rewrite.c>  RewriteEngine on  RewriteCond %{REQUEST_FILENAME} !-d  RewriteCond %{REQUEST_FILENAME} !-f  RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]  </IfModule>如果你的apache是fastcgi模式下,则需要修改

RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]替换成  RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]

2、在apache的配置文件httpd.conf中查找 : LoadModule rewrite_module modules/mod_rewrite.so 将前面的#去掉,假如没有这段内容,则需要手动加上3、在apache的配置文件httpd.conf中查找所有的 AllowOverride None,将 None 都替换成 All . 保存文件 并重启apache服务。

二、Nginx的伪静态配置找到nginx的配置文件 nginx.conf, 在里面的 server{ } 里增加以下内容

location / {if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=$1 last; break; } }

重启nginx即可生效

三、IIS的伪静态配置如果你的服务器环境支持ISAPI_Rewrite的话,可以配置httpd.ini文件,添加下面的内容:

RewriteRule (.*)$ /index\.php\?s=$1 [I]

在IIS的高版本下面可以配置web.Config,在中间添加rewrite节点:

<rewrite><rules>  <rule name="OrgPage" stopProcessing="true">  <match url="^(.*)$" />  <conditions logicalGrouping="MatchAll">  <add input="{HTTP_HOST}" pattern="^(.*)$" />  <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />  <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />  </conditions>  <action type="Rewrite" url="index.php/{R:1}" />  </rule>  </rules>  </rewrite>

结尾

通过本文的学习各位小伙伴们对于PHP中如何设置伪静态是不是学会了,那好以后还需要小伙伴们自己多多练习探索啊。

展开
收起

「php教程」Laravel框架的体系结构的初步学习

Laravel被称为“全栈”式框架,因为它能够处理从网络服务到数据库管理、HTML生成的一切事情,垂直集成的web开发环境给开发者提供了更好的体验。

开发人员可以通过命令行工具,生成和管理Laravel项目环境。Laravel附带了一个名为Artisan的优秀的命令行工具,它提供了一些开发过程中有用的命令用,可以用来生成框架代码和数据库管理。它是基于强大的Symfony Console 组件开发的。

Laravel的目标是给开发者创造一个愉快的开发过程,并且不牺牲应用的功能性。快乐的开发者才能创造最棒的代码!为了这个目的,我们博取众框架之长处集中到Laravel中,这些框架甚至是基于Ruby on Rails、ASP.NET MVC、和Sinatra等开发语言或工具的。

Laravel是易于理解并且强大的,它提供了强大的工具用以开发大型、健壮的应用。杰出的IoC、数据库迁移工具和紧密集成的单元测试支持,这些工具赋予你构建任何应用的能力。

目录结构

这是所有laravel项目具有基本上相同的目录结构,其中的每个文件都具有指定的地方。通过对目录结构的约定,确保你是按照“laravel方式”来工作。

正如你看到的,laravel项目下面有4个文件夹:app、bootstrap、public、vendor,这4个文件夹下面又有很多个子文件夹,当你第一次看到这么丰富的文件夹内容时,是不是觉得很有压力?没关系,我们会逐一的来了解不同的文件夹。

app 包含了站点的controllers(控制器),models(模型),views(视图)和assets(资源)。这些是网站运行的主要代码,你会将你大部分的时间花在这个目录里。

bootstrap 用来存放系统启动时需要的文件,这些文件会被如index.php这样的文件调用。

public 这个文件夹是唯一外界可以看到的web服务器的目录。它含有laravel框架核心的引导文件index.php,这个目录也可用来存放任何可以公开的静态资源,如css,Javascript,images等

vender

app目录

正如上面提到的,所有laravel中有趣的事情都会产生在app目录,让我们多了解一些里面的内容。

我们通过上面的表格可以看到,只要花一些心思在建立和命名的文件上,就能得到一个具有良好文件系统的结构化的应用。

模型-视图-控制器(MVC)

让我们更深一步了解如何建立laravel应用。你可能已经注意到,app目录下面有三子目录:models,views,controllers。这是表明了laravel是model-view-controller(MVC)架构模式,它将“业务逻辑”与图形用户界面相关的输入和显示逻辑(GUI)分离。在laravel Web应用中,业务逻辑通常由数据模型(如用户,博客文章)组成,GUI则只是一个浏览器中的页面。MVC设计模式在Web的开发领域中非常受欢迎。

MVC模式的三个要素:

模型(model)视图(view)控制器(controller)Laravel的响应流程

一个典型的laravel应用程序由上面提到的MVC组成

当访问一个laravel应用程序时,浏览器发送一个请求,由Web服务器接收并传递到laravel的路由引擎。该laravel路由器接收到请求后,根据配置重定向到相应的控制器类的方法。

然后由控制器类接管。在某些情况下,控制器将立即渲染一个视图,这是一个模板,将被转换成HTML并且发送回浏览器。更普遍的动态网站,控制器与模型进行交互,与数据库进行通信。调用模型后,控制器呈现最终视图(HTML、CSS和图像)并返回完整的web页面到用户的浏览器。

Laravel提倡模型、视图和控制器,应保持完全独立的存储单独的文件在不同的目录。这就是laravel的目录结构发挥作用的地方。

像MVC这样的设计模式的产生,就是为了让开发者的工作更加轻松。这就是Laravel比那些不用任何模式的PHP厉害的地方。如果这种讨论你现在感觉很抽象,不用担心!当你开始用Laravel工作,你都不会意识到你是在一种设计模式中工作。过一段时间后,就会变得自然了。

数据模型

数据模型是任何应用程序的基础,它建立了应用程序的业务逻辑。每一块数据通过使用一个数据库表表示。laravel提供了一些技术来简化对数据库的访问。

Laravel通过将数据库中的表行转成能被轻松操纵的PHP对象,来连接应用程序的数据模型和数据库表。它还使您能够执行业务规则,描述在应用程序中不同的数据模型之间的关系等。例如,一个人的家庭关系可以用Laravel Eloquent OR / M描述如下:

全选复制放进笔记class Person extends Eloquent

{

public function mother()

{

return $this->belongsTo('Mother');

}

public function father()

{

return $this->belongsTo('Father');

}

public function spouse()

{

return $this->hasOne('Spouse');

}

public function sisters()

{

return $this->hasMany('Sister');

}

public function brothers()

{

return $this->hasMany('Brother');

}

}

展开
收起

「PHP教程」语法及输出

PHP语法

PHP 脚本可以放在文档中的任何位置,以 “<?php ”开始,以“ ?>” 结束,也可以在PHP脚本中使用HTML标签等;

<!DOCTYPE html><html><head><meta charset="utf-8"></head><body><h1>我的第一个 PHP 页面</h1><?php/** * Created by PhpStorm. * User: Lucifer * Date: 2019/7/8 * Time: 18:35 *///开始和结束标签中间可以书写想要展示的内容//PHP代码段可以嵌套在HTML中,也可以在PHP代码段中输出HTML语句echo "<div style='width: 250px;height:250px;border: 1px solid fuchsia;background-color: bisque'></div>";?></body></html>

运行结果:

PHP 中的代码行都必须以分号结束。分号是一种分隔符,用于把指令集区分开来;

PHP 有两种注释方式:“//”用于单行注释,“/* */”为多行注释;

<?php//这里是我的单行注释 echo "这是枫哥哥的第一段PHP代码"; /* 我这里注释了多行, 在这段注释中的内容都不会显示在前台页面中 */?>

PHP的输出方式

PHP的基本输出方式有两种:echo 和 print。两种基本输出方式都可以在页面中输出内容,都是语言结构,使用的时候可以加上括号,也可以不用加括号: echo/print 或 echo()/print()。

<!DOCTYPE html><html><head><meta charset="utf-8"></head><body><?phpecho "这是echo输出<br>";echo("这是echo()输出<br>");print "这是print输出<br>";print("这是print()输出<br>");?></body></html>

运行结果:

虽然看起来两种输出方式看起来没有区别,但是echo 输出的速度比 print 快, echo 没有返回值,可以输出一个或者多个字符串;print有返回值,值为1,只能输出一个字符串。

除了基本输出外,还可以使用 var_dump() 输出类型和值 和 var_export() 输出结构信息。

展开
收起

php入门教程:从0开始学php第一课 php是什么?

第一课 php是什么?

大家好,欢迎来到山鹰课堂,首先我自我介绍一下,本人89年,网名山鹰,山东临沂人,2010年北漂7个月,之后一直在临沂,目前在一家临沂本地电商公司做技术开发。我呢研究php到现在差不多10年的时间了,很久以前就想出一套适合新手入门的php教程,由于各种原因一直拖到现在。

在教程正式开始之前,给大家说一下学习php的各种疑虑。很多人说我没有任何基础我能学会吗?我不会英语我能学会吗?我数学不好我能学会吗 …… 这一些列的疑虑都不是问题,编程就是用来解决具体问题的,我们的教程会以具体的需求出发,步步深入。只要你会电脑基础操作,有一颗上进心就够了!学习的道路上免不了各种浮躁,希望大家可以静下心,踏踏实实地学下去。

phpshi'shen'm

在php的学习道路上,我觉得一切要从需求出发,如果一上来就开始各种理论学习,相信会有很多人坚持不下去,即便是硬撑着学下去,也会边学边忘没有任何效果。这也是我自己的亲身体会,所以本套教程会从实际需求出发,一步步引导初学者进入php的世界。

我给大家解释一下什么是从需求出发?

首先我们要明白php是什么,

PHP(“PHP: Hypertext Preprocessor”,超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML中,尤其适合 web 开发。

以上描述估计新手朋友也很难理解,所以我们干脆直接了解下php能干什么!

php能干什么!

php能开发出一个企业展示网站吗? 能!

php能开发出一个购物商城吗? 能!

php能开发出一个会员管理系统吗? 能!

……

以上就是具体的需求,如果今天第一课就教会大家怎么用php开发出一个企业网站显然是不可能因为需求太大,所以我们就把大需求拆成小需求,也就有了我们的第一个需求:

php能实现1+1等于2吗?

现在需求已经有了,下面就是怎么实现了,先来给大家看一下实现这个需求的php代码:

php演示dai'm

以上代码被执行后,会得出1+1=2的结果,也就实现了我们的第一个需求。

讲到这里相信大家脑袋里都会有一个疑问,代码有了,怎么运行呢?

好了,今天的教程就到这里,希望大家带着这个疑问好好的思考一下,或者是自行百度一下,这也是我们第一课的课后作业,下一课我们将解密php代码怎么运行、以及php运行环境的搭建!

希望我的教程能给大家的php学习之路带去帮助,谢谢大家,下节课我们再见!山鹰课堂,专注电脑知识、php编程、前端技术等教程分享,觉得教程有用的朋友点赞加关注,点关注,不迷路,一大波干货教程在路上!

展开
收起