3
12月
2020
设置 PHP 开发人员工作站
15:27

设置 PHP 开发人员工作站

3 12月 2020 15:27

本文致力于在 Eclipse、Composer 和 TWIG 中设置 Web 服务器、PDT。 2024 年更新!

安装 Web 服务器、PHP 和 MySQL

在 Windows 上,您需要做的第一件事是下载并安装 XAMPP Web 服务器的现成发行版 https://www.xampp.ru/,其中包含MariaDB(类似于MySQL数据库管理系统)和PHP 7.3.6。
在 Linux 上,您可以安装 Apache、MySQL 和 PHP (
sudo apt-get update
sudo apt-get install tasksel
sudo tasksel install lamp-server
),您可以使用 PHP 内置的 Web 服务器来代替 Apache2 Web 服务器( php -S localhost:8000 )。

安装用于 PHP 开发的 Eclipse IDE 和 PDT 套件

然后,在 Windows 和 Linux 上,下载 Eclipse IDE 安装文件。 进入包下载页面后 https://www.eclipse.org/downloads/packages/ 你需要下载的版本 “面向企业 Java 和 Web 开发人员的 Eclipse IDE” 对于 Linux x86_64(约 528 MB)。

eclipse 网络安装程序
文件名: eclipse-jee-(номер версии)-linux-gtk-x86_64.tar.gz. После загрузки, необходимо открыть файл с расширением .tar.gz в Xarchiver и извлечь его в папку /home/(имя пользователя)/opt с полным путём. Например: /home/vladimir/opt

提取物

或者运行命令将 Eclipse 从存档中提取到 ~/opt 文件夹中:

mkdir ~/opt
mkdir ~/eclipse-workspace
tar xf eclipse-jee-*-linux-gtk-x86_64.tar.gz -C ~/opt --warning=no-unknown-keyword

! 在开始安装 Eclipse 之前,请确保硬盘驱动器上至少有 2 GB 的可用空间。

在 Windows 上,您需要在 jre 文件夹中另外安装免费的 Java 程序集。
! 注意:从 Java.com 下载的 JRE 虚拟机将无法运行。 需要从另一个来源下载 - Open JDK (https://jdk.java.net/15/- Windows x64)。
!!即如果Eclipse开发环境安装在C:\Eclipse文件夹下,则将java Open JDK放在C:\Eclipse\jre文件夹下

在 Linux 上,可执行文件位于文件夹 /home/(用户名)/opt/eclipse/ 中
要启动 Eclipse,在 Linux 中我们创建并在桌面上保存一个快捷方式文件 Eclipse.desktop,其内容为:
[Desktop Entry]
Version=1.0
Type=Application
Name=Eclipse
Comment=
Exec=/home/user/opt/eclipse/eclipse
Icon=/home/user/opt/eclipse/icon.xpm
Path=/home/user/eclipse-workspace/
Terminal=false
StartupNotify=false

或者在 GUI 中创建快捷方式:右键单击并选择 “创建启动图标”
创建快捷方式
设置快捷方式的选项:
eclipse_快捷方式
图标图片:选择/home/用户名/opt/eclipse/文件夹下的文件 图标.xpm


从桌面启动 Eclipse:
日食图标
首次启动时,我们确认用于存储 eclipse-workspaces 文件的文件夹。

为了能够使用 PHP 进行编程,您需要在 Eclipse 的菜单中添加对动态语言 DLTK 的支持以及用于 PHP 编程的扩展(PHP 开发工具 - PDT):
*“帮助”-“安装新软件” - “添加” - 名称:“DLTK 6.4” - 位置:“https://download.eclipse.org/technology/dltk/updates-dev/6.4/” - “添加” - 选择“动态语言工具包 (DLTK)” - 并完成安装:“下一步” - “下一步” - “我接受条款...” - “完成”。

  • 重新启动 Eclipse IDE - “立即重新启动”
    *“帮助”-“安装新软件” - “添加” - 名称:“更新8.2” - 位置:“https://download.eclipse.org/tools/pdt/updates/8.2/” - “添加” - “PHP 开发工具” - 并完成安装:“下一步” - “下一步” - “我接受条款...” - “完成”。
  • 重新启动 Eclipse IDE - “立即重新启动”

我们完成PDT安装: “帮助”——”Eclipse 市场...“ - 在文本字段中 “寻找” 输入 “PHP”,在下一个字段中: “日食计划”输入 (或按钮 “走吧” )。
选择 php 工具组件

然后选择顶部的必填项: “PHP 开发工具(PDT)”,其余复选框可以取消选中。
![选择 PHP 开发工具 (PDT) 组件](php_tools_new2.png?lightbox=1060&cropResize=623,467&classes=img-zoomable "PHP Development Tools (PDT)”)

点击后 “确认” 您将被要求接受 Eclipse 许可证: - 选择所需的项目 -“我接受”、“完成”
同意 Eclipse 许可证 - 我接受,完成

完成 PDT 安装后,重新启动 Eclipse。

(可选)为 Twig 模板引擎安装一个有用的插件:
*“帮助”-“Eclipse Marketplace...”-在“查找”文本字段中输入“twig plugin”并回车。 ——”安装”-“接受”-“完成”。

[标记](Последнее обновление - январь 2024)[/标记]



安装 Composer(为了更快地安装框架)

  1. 创建composer安装目录并删除之前安装的痕迹
    sudo rmdir /usr/local/bin/composer
    sudo mv ~/.composer ~/.composer.old
    2、在用户文件夹中创建.composer文件夹:
    mkdir ~/.composer

  2. 从官网下载Composer安装程序
    https://getcomposer.org/installer-> 文件保存在“下载”文件夹中。

  3. 重命名安装程序文件并准备启动
    cd ~/Загрузки
    mv installer ~/composer-setup.php
    cd ..

  4. 使用两个命令开始安装和更新 Composer:
    php composer-setup.php
    php composer.phar self-update


创建第一个项目和 PHP 文件:

  • 创建一个项目 文件 - 新建 - PHP 项目
  • 项目名称-测试

    通过“文件”-“新建”-“PHP 项目”菜单在 Eclipse 中创建一个新的 PHP 项目

在文件夹 /home/vladimir/workspace/test 中(替换为你的)
如果项目树不可见,请使用项目资源管理器将其展开。

文件 - 新建 - PHP 文件- 插入下面示例中的文本。 (文件名 -索引.php )。
新的 PHP 文件

设置 Eclipse

0..Eclipse 黑暗主题- 窗口 - 首选项 - 常规 - 外观 - 启用主题 -主题 - 黑暗- 申请并关闭。

  1. 指定 PHP 位置
    “窗口”-“首选项”-“PHP”-“已安装的 PHP”-“添加”
    名称-PHP
    位置 执行路径——/usr/bin/php
    按钮 “完成”
    已安装 php 的指示

! 以下设置不准确,可能会进行修改。

  1. 指定php包内置的web服务器
    “窗口”-“首选项”-“PHP”-“服务器”
    默认删除
    添加
    服务器名称- 任何,例如 “本地主机:8000”
    基本网址- http://localhost:8000
    文档根目录 - /home/vladimir/workspace (替换为你的)

请注意,我决定在端口 8000 上运行,因此我指定了该值 “http://localhost:8000”
内置网络服务器
下面的按钮 下一页
调试器 - 无
下面的按钮 下一页
路径映射
*添加

  • 服务器上的路径 -/测试
  • 工作区路径 -测试
  1. 在端口 8000 和_根目录_上启动 Web 服务器 php -S,在本例中 /home/弗拉基米尔/工作空间

[标记]cd ~/workspace[/标记]
[标记]php -S localhost:8000[/标记]

其中 ~/workspace 是您需要替换为您自己的 php 项目文件夹的路径。

!!注意力! 如果您忘记运行命令 cd ~/workspace (在本例中为“文档根目录”),那么在运行 php -S 时将会出现 404 错误:

404

!!说明: 项目文件夹必须是该文件夹的子目录“文档根”。 如果项目存储在“workspace”以外的其他文件夹的子文件夹中,请更正该字段 “文档根”。 例如,在下面的示例中,项目文件夹名为“eclipse-workspace”。

服务器 - 文档根目录

在终端中运行的结果应该如下:
“[2023 年 4 月 17 日星期一 16:59:14] PHP 8.1.2-1ubuntu2.11 开发服务器 (http://localhost:8000) 已启动”

  1. 窗口 - 首选项 - PHP - 服务器
    更改如下:

第一个选项卡 - 我们指示文档根与 php -S 相同,即
/home/vladimir/workspace(替换为项目文件夹的路径)
设置1

第三个选项卡“端口映射”:我们不配置它!
保存设置并退出。

  1. 在 Eclipse 面板中,单击绿色启动图标旁边的向下箭头 “运行”-“运行配置...”
    此设置旨在指定运行“运行”时的“默认”启动 php 文件。

选择上一段中配置的服务器。

在项目中,选择your主要 要运行的 PHP 文件,按钮 “浏览”
选择文件

必须选中“自动生成”复选框。
自动生成

*申请

  • 点击 运行 (不是关闭!)

如果 Web 服务器在端口 8000 上运行,则 Web 服务器将工作并显示该页面。
如果启动了一个仓促创建的页面 <?php echo "Hello, world!";

你好世界!

或者,当使用 twig 模板运行 index.php 文件时(如文章末尾所示):

结果

如果该页面未出现,请在运行 php -S 的终端窗口中查找错误。

可能的错误

PHP 警告:未知:无法打开流:第 0 行未知中没有此类文件或目录 PHP 致命错误:需要打开失败
解决方案:从设置中删除路径映射服务器。

[::1]:45720 [500]: GET /test/index.php - 未加括号 a ? b : c ? d : e is not supported. Use either (a ? b : c) ? d : e or a ? b : (c ? d : e) 在 /home/vladimir/workspace/test/vendor/twig/twig/lib/Twig/Node.php 第 42 行

解决方案:更新作曲家 1.2.5.5之前的版本和v2.15.4之前的Twig v2.4.8版本,兼容PHP 8.1.2:

cd ~/workspace
sudo composer self-update --2
composer require "twig/twig:^2.0" 

将来,我们将通过单击绿色的“运行”按钮来启动index.php以供查看。

使用 XDebug 在 Eclipse 中设置代码调试

1)从命令行安装xdebug包

sudo apt-get install php-xdebug

2)找出php.ini文件所在的位置:

<?php phpinfo();

3)转到文件夹(在上一段中显示)

cd /etc/php/8.1/cli/conf.d

conf.d 文件夹中应该有一个符号链接 20-xdebug.ini 每个文件
调试1

如果没有,则创建它(通过 echo php_info() 函数显示文件夹的路径:
sudo ln -s /etc/php/8.1/mods-available/xdebug.ini 20-xdebug.ini

!因此,要配置 xdebug,您需要使用以下命令编辑文件 nano /etc/php/8.1/cli/conf.d/20-xdebug.ini,但文件 /etc/php/8.1/mods-available/xdebug.ini 实际上已被编辑。

4) 打开进行编辑 20-xdebug.ini

sudo nano 20-xdebug.ini

5) 将以下文本添加到 20-xdebug.ini 文件中:

zend_extension=xdebug
xdebug.mode = debug
xdebug.start_with_request=yes

Доп发布日期为 2023 年 6 月 15 日。 20-xdebug.ini 文件的扩展版本 (xdebug.ini):

zend_extension=xdebug
;zend_extension=xdebug.so
;zend_extension=/usr/lib/php/20210902/xdebug.so
xdebug.mode=调试
;xdebug.remote_enable=1
xdebug.idekey="codeliteide"
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.client_port=9000
xdebug.start_with_request = 是
xdebug.discover_client_host=1

! 注意:如果运行 Web 服务器 php -S localhost:8000 后显示消息 Cannot load Xdebug - it was already returned - 忽略该警告。

!!注意#2:如果在调试期间执行没有停止并且超过了断点,就像“运行”的情况一样,请检查文件“/etc/php/8.1/mods-available/xdebug.ini” - 它应该包含行 zend_extension=xdebug 或 zend_extension=xdebug.so ,因为没有它,调试将无法工作。

(补充:要禁用xdebug调试,需要删除这些行(或注释掉)并在/etc/php/8.1/mods-available/xdebug.ini文件中写入以下文本: xdebug.mode = none

6)在开发环境中 日食 将以下文本添加到 index.php 文件:

<?php echo xdebug_info();

7) 在设置中 窗口 - 首选项 - PHP - 调试 单击该行 调试工具- 按钮 “配置”
Eclipse Xdebug 配置

8) 将端口从 9000 更正为 9003。
XDebug 配置端口 900

9) 申请 - 申请并关闭

10) 打开“调试”透视图:

窗口 - 透视 - 调试

(或点击屏幕右上方相应按钮)。

11) 在“运行”菜单中,勾选该项 “调试配置...” 第一个选项卡“服务器”上的设置与“运行配置...”一致。
这里是一个用于调试的PHP文件,运行“Debug”后会在浏览器中打开。

您还可以在“全局设置”中更改调试器设置

  • 运行-调试配置-调试器-配置-全局设置-调试端口。

На 在第二个选项卡“调试器”中,应选择 XDebug,必须指定端口 9003。这是上面在 ini 文件 20-xdebug.ini 中指定的。

如果程序抱怨端口 9003 正忙“端口已在使用中。请在相应的 PHP 服务器配置中为调试器选择不同的端口 (localhost:8000)”,
您需要完成 php -S 并关闭 Eclipse。 然后在终端中转到 cd 工作区文件夹并运行 php -S localhost:8000 并运行 Eclipse,其中重复运行 - 调试 (F11)。

11) 在菜单中开始调试 “运行-调试”

由于我们之前在第 6 段的源文本中添加了 echo xdebug_info() 函数;
有关 Xdebug 的信息应在启用该项目的情况下显示 步进调试

12)我们尝试设置断点并通过单击“停止”按钮重新启动应用程序,然后使用菜单项开始调试 “运行”-“调试(F11)”。 调试将在断点处停止。 按 键 F6 (“跨过去”)**。 网络浏览器将显示结果:
![结果 echo xdebug_info();](xdebug4.png?lightbox=1060&classes=img-zoomable "echo xdebug_info();”)

基本热键 用于调试( 调试 ):
F11- 调试(开始调试)
F5- Step into(输入方法或函数)
F6- 单步执行(执行方法或函数而不进入子例程)
F7- 步骤返回(退出方法、函数)
Ctrl+F11 运行(不调试运行)
Ctrl+F2 终止

自 2023 年 6 月 13 日起添加: 要运行项目而不进行调试 - 运行 - 运行 (Ctrl+F11)。
这样每次启动时它都不会停在第一行,
窗口 - 首选项 - 调试 -在第一行中断 取消选中该框。 见下图

第一行中断 - 关闭

!! !提示:要显示有关已安装的 xdebug 扩展版本的信息,请使用 Web 服务器在“运行”或“调试”模式下运行包含 PHP 代码的页面: echo xdebug_info();

Twig 模板引擎的测试文件index.php

<代码><?php
require_once './vendor/autoload.php';

$loader = new Twig_Loader_Filesystem('./templates');

$twig = new Twig_Environment ( $loader, 数组 (
'缓存' => './缓存',
'自动重新加载' => '真',
'调试' => true
) );

$twig->addExtension ( new Twig_Extension_Debug () );

$数据=数组(
'用户名1' => '佩蒂亚',
'用户名2' => 'Vova'
);

$mas = [
'1-胡萝卜',
'2-香菜',
'3-黄瓜',
'4-南瓜',
'5辣根'
];

echo $twig->render('index.html',数组(
'名字' => '沃洛迪亚',
'访问' => '07/01/2018',
'数据' => $数据,
'mas' => $mas
) );

?>

模板

一块模板

Eclipse 2020-09 的 2020 年测试项目:

(包括php文件和twig模板(适用于Composer 1.0和Twig 2.4):
测试.zip

Eclipse 2023-03 的 2023 年测试项目:

(包括 php 文件和 twig 模板(适用于 Composer 2.0 和 Twig 2.15):
测试2023.zip