0

0

PHP 系列:PHP Web 开发基础,phpweb_PHP教程

php中文网

php中文网

发布时间:2016-07-12 09:00:35

|

1974人浏览过

|

来源于php中文网

原创

PHP 系列:PHP Web 开发基础,phpweb

PHP是动态类型的Web开发的脚本语言,PHP以页面文件作为加载和运行的单元,PHP现在有了Composer作为开发包管理。

1.使用Composer管理依赖

自从.NET开发用了Nuget管理程序集依赖,我就再也离不开它了,幸亏Java中也有Maven管理jar包,虽然开源中国的镜像太慢但还有ibiblio的镜像可用,PHP现在终于有了Composer(参考1)用来管理资源包。

(1)全局安装(参考2)

在指定安装目录中执行命令行:

立即学习PHP免费学习笔记(深入)”;

php -r <span>"</span><span>readfile('https://getcomposer.org/installer');</span><span>"</span> | php

在指定安装目录中执行命令行:

立即学习PHP免费学习笔记(深入)”;

<span>echo</span> @php <span>"</span><span>%~dp0composer.phar</span><span>"</span> %*>composer.bat

将指定安装目录添加到环境变量的系统变量Path中。

(2)项目安装

在项目目录中执行命令行:

php -r <span>"</span><span>readfile('https://getcomposer.org/installer');</span><span>"</span> | php

使用 composer.json 文件配置依赖。如配置PHP中常用的日志组件:

<span>{
    </span>"require"<span>: {
        </span>"monolog/monolog": "1.0.*"<span>
    }
}</span>

使用命令行命令 php composer.phar install 安装依赖的资源包。如果进行了全局安装,只需要执行composert install。

这会将生成 composer.lock 文件并依赖下载资源包到 vendor 目录,composer.lock 文件是下载依赖时真正使用的文件。

(3)升级依赖

项目使用 composer.lock 文件维护依赖,如果我们需要使用更新版本的依赖,需要按需修改 composer.json 文件并执行更新命令。全局安装:composer update,项目安装使用:php composer.phar update。

(4)资源包查询与镜像

可以使用http://packagist.org检索资源包,好比.NET中的https://www.nuget.org/packages/和Java中的http://search.maven.org/。

可以使用http://packagist.phpcomposer.com镜像,全局配置使用如下命令行命令:

composer config -g repo.packagist composer http:<span>//</span><span>packagist.phpcomposer.com</span>

项目配置使用如下命令行:

composer config repo.packagist composer http:<span>//</span><span>packagist.phpcomposer.com</span>

当然最简单的方式是直接修改composer.config文件:

战刀API淘客自动采集系统
战刀API淘客自动采集系统

战刀API淘客自动采集系统是一个以php+MySQL进行开放的淘宝客网站程序。程序说明:1.老Y文章系统更改为php战刀API淘宝客系统。2.本程序就是基于"淘宝客基础API"开发出来的产品 。3.现在淘宝客API 重新开放申请 商品全自动更新。网站功能:1.现在淘宝客API 重新开放申请,本程序就是基于"淘宝客基础API"开发出来的产品,海量商品全自动更新

下载
<span>{
    </span>"require"<span>: {
        </span>"monolog/monolog": "1.0.*"<span>
    },
    </span>"repositories"<span>: {
        </span>"packagist"<span>: {
            </span>"type": "composer"<span>,
            </span>"url": "http://packagist.phpcomposer.com"<span>
        }
    }
}</span>

(5)自动加载

Composert 在 vendor 目录下自动生成并维护包含了全部依赖信息的 autoload.php 文件。因此我们只需要通过 autoload.php 使用第三方库即可。例如:

<?<span>php 
</span><span>require</span> 'vendor/autoload.php'<span>;
</span><span>$log</span> = <span>new</span> Monolog\Logger('name'<span>);
</span><span>$log</span>->pushHandler(<span>new</span> Monolog\Handler\StreamHandler('app.log', Monolog\Logger::<span>WARNING));
</span><span>$log</span>->addWarning('Foo'<span>);
</span>?>

2.PHP基础

(1)PHP类似C语系语法的脚本语言。

如果你有C或C++语言的基础,那么很多概念和语法都可以直接对照。从大小写敏感到注释,从数据类型、函数、参数传递和成员引用等。从C/C++/Java/C#这一体系学习下来,再加上JavaScript脚本语言的基础,加点PHP的技能点水到渠成。

(2)PHP是动态类型语言。

PHP有和C语言等强类型语言一样的数据类型定义,支持的类型也相仿,只是PHP中同一变量在不同时刻可以表示不同类型的数据,但同一时刻,每个变量都相当于强类型中的指定类型的变量。因此对于PHP,更适合的称呼是动态类型。习惯使用Java/C#等强类型语言总会对动态类型的脚本语言心存焦虑,可以通过PHP的类型检查函数减少这方面的顾虑(is_bool\is_integer\is_double\is_string\is_null等)。

(3)PHP以页面文件方式运行。

无论如何使用PHP,PHP的都是以页面文件方式运行的,这和运行在浏览器端的JavaScript方式类似,JavaScript文件只有在被加载到当前页面才能引用和执行,PHP也只有在通过include或required方式加载后才能引用和执行,即使后续添加的 __autoload和spl_autoload依然只是简化而非改变了其加载引用的本质。

(4)PHP不需要复杂的框架

PHP天生是处理Web请求的,HTTP协议相关的内容是PHP的重点,一般来讲,除了纵向请求的处理,横向的认证和授权控制部分,其他部分不应该过于依赖PHP,如果通过耦合性较高的Web框架使用PHP本身就是错误的。由于PHP本身的运行和加载方式,导致PHP天生就适合复用各种组件而非使用框架来解决问题。成天寄希望于框架的人,要么是不想在PHP基础要么是不想在业务逻辑基础上下功夫。

3.PHP常用文件

(1)配置文件config.php

应用配置的各种信息定义在一个或多个配置文件中。一般每次请求都会加载配置文件,配置文件中不只包含了数据库连接信息,如应用MVC时,每次请求都会加载配置文件以便读取所有URL和Controller以及View之间的规则。

(2)入口文件index.php

处理首页请求或全部请求的文件。index.php在实现PHP的MVC时是天然的前段控制器FrontController,由index.php负责纵向的处理请求转发,横向的认证和授权等处理文件,等也需要在index.php中加载。

(3)数据访问文件database.php

database.php是工具类中最主要的用于数据访问的文件,为了避免数据访问中重复性出现的代码,一般的PHP应用程序都会独立的一个或一组数据访问文件。

4.自定义Session

在PHP中自定义Session比Java中方便多了,只需要将自定义的函数名称做为参数传递给session_set_save_handler($open, $close, $read, $write, $destroy, $gc)作为参数即可,我们自定义一个使用cookie作为存储的session,作为演示没有对数据长度进行验证,也没有使用对称加密解密。

<?<span>php

</span><span>function</span><span> open_session() {
    </span><span>return</span> <span>true</span><span>;
}

</span><span>function</span><span> close_session() {
    </span><span>return</span> <span>true</span><span>;
}

</span><span>function</span> read_session(<span>$id</span><span>) {
    </span><span>if</span> (<span>$_COOKIE</span>[<span>$id</span><span>]) {
        </span><span>return</span> <span>base64_decode</span>(<span>$_COOKIE</span>[<span>$id</span><span>]);
    }
    </span><span>return</span> ''<span>;
}

</span><span>function</span> write_session(<span>$sid</span>, <span>$data</span><span>) {
    </span><span>if</span> (<span>$_COOKIE</span>['session_end'<span>]) {
        </span><span>setcookie</span>(<span>$sid</span>, <span>base64_encode</span>(<span>$data</span>), <span>$_COOKIE</span>['session_end'<span>]);
    } </span><span>else</span><span> {
        </span><span>$start</span> = <span>time</span>() + <span>session_get_cookie_params</span>()['lifetime'<span>];
        </span><span>setcookie</span>('session_end', <span>$start</span>, <span>$start</span><span>);
        </span><span>setcookie</span>(<span>$sid</span>, <span>base64_encode</span>(<span>$data</span>), <span>$start</span><span>);
    }
    </span><span>return</span> <span>true</span><span>;
}

</span><span>function</span><span> destroy_session() {
    </span><span>$_Session</span> = <span>array</span><span>();
    </span><span>return</span> <span>true</span><span>;
}

</span><span>function</span><span> gc_session() {
    </span><span>return</span> <span>true</span><span>;
}

</span><span>ini_set</span>("session.cookie_lifetime", "3600"<span>);
</span><span>session_set_save_handler</span>('open_session', 'close_session', 'read_session', 'write_session', 'destroy_session', 'gc_session'<span>);
</span><span>session_start</span><span>();
</span><span>$_SESSION</span>['count'] += 1<span>;
</span><span>echo</span> <span>$_SESSION</span>['count'<span>];
</span><span>session_write_close</span><span>();
</span>?>

参考

(1)https://getcomposer.org/doc/00-intro.md

(2)http://docs.phpcomposer.com/00-intro.html

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1092700.htmlTechArticlePHP 系列:PHP Web 开发基础,phpweb PHP是动态类型的Web开发的脚本语言,PHP以页面文件作为加载和运行的单元,PHP现在有了Composer作为开发包管...

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

php

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

797

2026.02.13

微博网页版主页入口与登录指南_官方网页端快速访问方法
微博网页版主页入口与登录指南_官方网页端快速访问方法

本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。

272

2026.02.13

Flutter跨平台开发与状态管理实战
Flutter跨平台开发与状态管理实战

本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。

144

2026.02.13

TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

25

2026.02.13

Redis高可用架构与分布式缓存实战
Redis高可用架构与分布式缓存实战

本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。

92

2026.02.13

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

53

2026.02.12

雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法
雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法

本专题系统整理雨课堂网页版官方入口及在线登录方式,涵盖账号登录流程、官方直连入口及平台访问方法说明,帮助师生用户快速进入雨课堂在线教学平台,实现便捷、高效的课程学习与教学管理体验。

15

2026.02.12

豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法
豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法

本专题汇总豆包AI官方网页版入口及在线使用方式,涵盖智能写作工具、图片生成体验入口和官网登录方法,帮助用户快速直达豆包AI平台,高效完成文本创作与AI生图任务,实现便捷智能创作体验。

717

2026.02.12

PostgreSQL性能优化与索引调优实战
PostgreSQL性能优化与索引调优实战

本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

64

2026.02.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 12.2万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.3万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号