好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

php网站依赖 php运行网址

很多站长朋友们都不太清楚php网站依赖,今天小编就来给大家整理php网站依赖,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 PHP的服务器,也要安装依赖吗 2、 怎么使用php 包依赖管理工具 composer 执行命令安装 3、 PHP中什么是依赖注入 PHP的服务器,也要安装依赖吗

有些服务是依赖其他服务的哦,不但依赖,还依赖版本。

1.可以用 yum search xxx来查找安装包

2.一般服务器配置,安装信息如下:

yum install php-dom

yum install php-mbstring

yum -y install php-gd php-mbstring php-ldap php-pear php-xmlrpc

yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql

yum install php55w-xml

yum install ImageMagick

yum install ImageMagick-devel

pecl install imagick

yum install libjpeg libjpeg-devel libpng libpng-devel libtiff libtiff-devel

yum install php55w-pecl-imagick.x86_64 php55w-pecl-imagick-devel.x86_64

yum install zlib-devel

yum install gd-devel

yum install curl

怎么使用php 包依赖管理工具 composer 执行命令安装

CentOS7下安装Composer安装Composer1、将composer.phar下载到项目中使用curl-sS下载Composer的二进制文件,是一个PHAR包(PHP的归档)2、可以通过--install-dir选项指定Composer的安装目录(它可以是一个绝对或相对路径):curl-sS、如果把composer.phar放在系统的PATH目录中,就能在全局访问composer.phar。在类Unix系统中,你甚至可以在使用时不加php前缀。可以执行这些命令让composer在你的系统中进行全局调用:#mvcomposer.phar/usr/local/bin/composer现在只需要运行composer命令就可以使用Composer而不需要输入phpcomposer.phar。4、检查Composer是否正常工作,只需要通过php来执行PHAR:phpcomposer.phar这将返回给你一个可执行的命令列表。使用Composer要在项目中使用Composer,只需要一个composer.json文件。该文件包含了项目的依赖和其它的一些元数据。现在使用Composer来安装项目的依赖。1、创建composer.json文件在当前目录下创建composer.json文件,在composer.json文件中指定requirekey的值。简单的告诉Composer你的项目需要依赖哪些包。例如:{"require":{"monolog/monolog":"1.0.*"}}可以看到,require需要一个包名称monolog/monolog映射到包版本1.0.*的对象。包名称由供应商名称和其项目名称构成。2、安装依赖包执行install命令获取定义的依赖到本地项目:phpcomposer.pharinstall如果你进行了全局安装,并且没有phar文件在当前目录,使用下面的命令代替:composerinstall这将会找到monolog/monolog的最新版本,并将它下载到vendor目录。这是一个惯例把第三方的代码到一个指定的目录vendor。如果是monolog将会创建vendor/monolog/monolog目录。注意:install命令将创建一个composer.lock文件到你项目的根目录中。3、自动加载除了库的下载,Composer还准备了一个自动加载文件,它可以加载Composer下载的库中所有的类文件。使用它,你只需要将下面这行代码添加到你项目的引导文件中:require'vendor/autoload.php';现在我们就可以使用monolog了

PHP中什么是依赖注入

依赖注入可能是我所知道的最简单设计模式之一,很多情况下可能你无意识中已经使用了依赖注入。不过它也是最难解释的一个。我认为有一部分原因是由于大多数介绍依赖注入的例子缺乏实际意义,让人难理解。因为PHP主要用于Web开发,那就先来看一个简单的web开发实例。

HTTP本身是一个无状态的连接协议,为了支持客户在发起WEB请求时应用程序能存储用户信息,我们就需要通过一种技术来实现存储状态交互。理所当然最简单的是使用cookie,更好的方式是PHP内置的Session机制。

$_SESSION['language'] = 'fr';

上面代码将用户语言存储在了名为language的Session变量中,因此在该用户随后的请求中,可以通过全局数组$_SESSION来获取language:

$user_language = $_SESSION['language'];

依赖注入主要用于面向对像开发,现在让我们假设我们有一个SessionStorage类,该类封装了PHP Session机制:

class SessionStorage

{

function __construct($cookieName = 'PHP_SESS_ID')

{

session_name($cookieName);

session_start();

}

function set($key, $value)

{

$_SESSION[$key] = $value;

}

function get($key)

{

return $_SESSION[$key];

}

// ...

}

同时还有一个User类提供了更高级的封装:

class User

{

protected $storage;

function __construct()

{

$this->storage = new SessionStorage();

}

function setLanguage($language)

{

$this->storage->set('language', $language);

}

function getLanguage()

{

return $this->storage->get('language');

}

// ...

}

代码很简单,同样使用User类也很简单:

$user = new User();

$user->setLanguage('fr');

$user_language = $user->getLanguage();

一切都很美好,除非你的程序需要更好的扩展性。假设现在你想要更改保存session_id的COOKIE键值,以下有一些可供选择的方法:

User类中创建SessionStorage实例时,在SessionStorage构造方法中使用字符串’SESSION_ID’硬编码:

class User

{

function __construct()

{

$this->storage = new SessionStorage('SESSION_ID');

}

// ...

}

在User类外部设置一个常量(名为STORAGE_SESSION_NAME)

class User

{

function __construct()

{

$this->storage = new SessionStorage(STORAGE_SESSION_NAME);

}

// ...

}

define('STORAGE_SESSION_NAME', 'SESSION_ID');

通过User类构造函数中的参数传递Session name

class User

{

function __construct($sessionName)

{

$this->storage = new SessionStorage($sessionName);

}

// ...

}

$user = new User('SESSION_ID');

还是通过User类构造函数中的参数传递Session name,不过这次参数采用数组的方式

class User

{

function __construct($storageOptions)

{

$this->storage = new SessionStorage($storageOptions['session_name']);

}

// ...

}

$user = new User(array('session_name' => 'SESSION_ID'));

上面的方式都很糟糕。

在user类中硬编码设置session name的做法没有真正解决问题,如果以后你还需要更改保存session_id的COOKIE键值,你不得不再一次修改user类(User类不应该关心COOKIE键值)。

使用常量的方式同样很糟,造成User类依赖于一个常量设置。

通过User类构造函数的参数或数组来传递session name相对来说好一些,不过也不完美,这样做干扰了User类构造函数的参数,因为如何存储Session并不是User类需要关心的,User类不应该和它们扯上关联。

另外,还有一个问题不太好解决:我们如何改变SessionStorage类。这种应用场景很多,比如你要用一个Session模拟类来做测试,或者你要将Session存储在数据库或者内存中。目前这种实现方式,在不改变User类的情况下,很难做到这点。

现在,让我们来使用依赖注入。回忆一下,之前我们是在User类内部创建SessionStorage对像的,现在我们修改一下,让SessionStorage对像通过User类的构造函数传递进去。

class User

{

function __construct($storage)

{

$this->storage = $storage;

}

// ...

这就是依赖注入最经典的案例,没有之一。现在使用User类有一些小小的改变,首先你需要创建SessionStorage对像。

$storage = new SessionStorage('SESSION_ID');

$user = new User($storage);

现在,配置session存储对像很简单了,同样如果改变session存储对像也很简单,所有这一切并不需要去更新User类,降低了业务类之间的耦合。

Pico Container 的网站上是这样描述依赖注入:

依赖注入是通过类的构造函数、方法、或者直接写入的方式,将所依赖的组件传递给类的方式。

所以依赖注入并不只限于通过构造函数注入。下面来看看几种注入方式:

构造函数注入

class User

{

function __construct($storage)

{

$this->storage = $storage;

}

// ...

}

setter方法注入

class User

{

function setSessionStorage($storage)

{

$this->storage = $storage;

}

// ...

}

属性直接注入

class User

{

public $sessionStorage;

}

$user->sessionStorage = $storage;

根据经验,一般通过构造函数注入的是强依赖关系的组件,setter方式用来注入可选的依赖组件。

现在,大多数流行的PHP框架都采用了依赖注入的模式实现业务组件间的高内聚低耦合。

// symfony: 构造函数注入的例子

$dispatcher = new sfEventDispatcher();

$storage = new sfMySQLSessionStorage(array('database' => 'session', 'db_table' => 'session'));

$user = new sfUser($dispatcher, $storage, array('default_culture' => 'en'));

// Zend Framework: setter方式注入的例子

$transport = new Zend_Mail_Transport_Smtp('smtp.gmail.com', array(

'auth' => 'login',

'username' => 'foo',

'password' => 'bar',

'ssl' => 'ssl',

'port' => 465,

));

$mailer = new Zend_Mail();

$mailer->setDefaultTransport($transport);

关于php网站依赖的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php网站依赖 php运行网址的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did255233
更新时间:2023-10-09   阅读:45次

上一篇: bashphp的简单介绍

下一篇:phpisset多个值 php __set __get

相关资讯

最新资料更新

  • 1.php文章发布系统 php发布网站
  • 2.php加密解密 php数据加密解密
  • 3.php数组逗号分隔 php中的输出语句 能使用逗号分隔多个表达式
  • 4.php中if应用 php中if语句
  • 5.php连接vertica php连接mysql
  • 6.php写循环下拉页面 php下拉菜单的代码
  • 7.修改文件限制php php修改上传文件大小
  • 8.php调用裁剪插件 phpcrawl
  • 9.php数组冒泡排序 php冒泡排序面试题
  • 10.php赋值后改变 php变量赋值
  • 11.php区xml文件 php处理xml数据
  • 12.php环境配置工具 phpstorm2021配置php环境
  • 13.php英国时区代码 英国时区缩写
  • 14.php界面怎么设置 php界面设计
  • 15.海康sdk只有php 海康sdk python
  • 16.php配置smtp php配置文件的文件名是什么
  • 17.php提示重复提交 php api防止重复提交
  • 18.php字体和颜色 php字体样式代码
  • 19.php移动gps定位 functionsphp位置
  • 20.php怎样打开url php链接怎么打开

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://www.haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]