Table des matières
PHP 系列:PHP Web 开发基础,phpweb
1.使用Composer管理依赖
2.PHP基础
3.PHP常用文件
4.自定义Session
参考
Maison développement back-end tutoriel php PHP 系列:PHP Web 开发基础,phpweb_PHP教程

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

Jul 12, 2016 am 09:00 AM
php web 动态 基础 开发 Oui de 类型 série 脚本

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

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

1.使用Composer管理依赖

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

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

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

php -r <span>"</span><span>readfile('https://getcomposer.org/installer');</span><span>"</span> | php
Copier après la connexion
Copier après la connexion

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

<span>echo</span> @php <span>"</span><span>%~dp0composer.phar</span><span>"</span> %*>composer.bat
Copier après la connexion

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

(2)项目安装

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

php -r <span>"</span><span>readfile('https://getcomposer.org/installer');</span><span>"</span> | php
Copier après la connexion
Copier après la connexion

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

<span>{
    </span>"require"<span>: {
        </span>"monolog/monolog": "1.0.*"<span>
    }
}</span>
Copier après la connexion

使用命令行命令 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>
Copier après la connexion

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

composer config repo.packagist composer http:<span>//</span><span>packagist.phpcomposer.com</span>
Copier après la connexion

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

<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>
Copier après la connexion

(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>?>
Copier après la connexion

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>?>
Copier après la connexion

参考

(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作为开发包管...
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Configuration du projet CakePHP Configuration du projet CakePHP Sep 10, 2024 pm 05:25 PM

Dans ce chapitre, nous comprendrons les variables d'environnement, la configuration générale, la configuration de la base de données et la configuration de la messagerie dans CakePHP.

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Date et heure de CakePHP Date et heure de CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

Téléchargement de fichiers CakePHP Téléchargement de fichiers CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

Routage CakePHP Routage CakePHP Sep 10, 2024 pm 05:25 PM

Dans ce chapitre, nous allons apprendre les sujets suivants liés au routage ?

Discuter de CakePHP Discuter de CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

CakePHP créant des validateurs CakePHP créant des validateurs Sep 10, 2024 pm 05:26 PM

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.

See all articles