关于phpstorm:2023-年-PhpStorm-最新激活教程亲测可用永久激活

本文讲的是反对2022.3.2最新版本的PhpStorm破解、PhpStorm激活码、PhpStorm装置、PhpStorm永恒激活码的最新永恒激活教程,本文有mac和windows零碎的PhpStorm装置教程。 1.下载安装PhpStorm先去官网下载,我这里下载的是最新版本的2022.2.1,目前测试过2021以上版本均可应用以下破解形式。(尽量优先应用 2022.2.1 版本,太新的版本有可能激活失败) 装置而后关上,点击next 我这里是全副勾选,而后next 装置好后关上 ![PhpStorm破解]() 2.下载破解工具下载破解工具激活为了避免爬虫,因而扫描关注微信公众号 徐公, 输出 phpstorm 获取先把PhpStorm敞开退出。关上下载好的激活包(下载后记得不要删掉,而后装置的门路尽量不要带中文门路、删掉就会生效的)windows的样子 mac的样子 关上scripts文件3.windows的PhpStorm激活先执行unistall-current-user.vbs,间接双击关上,此步骤是为了避免之前有过激活信息,确保以后环境变量下没有激活工具的变量信息,可先执行卸载脚本在再进行前面的激活操作,防止激活失败。 呈现弹框done阐明胜利 而后再执行install-current-user.vbs,间接双击关上即可 这里须要期待10秒左右才会呈现第二个done弹框,才是胜利 而后再输出对应的激活码即可,文章下面扫公众号二维码获取4.mac的PhpStorm激活先关上终端先运行uninstall.sh此步骤是一键帮你去掉以前所激活过留下的货色,解决key is invalid的问题。避免激活失败而后终端输出sh /Users/chen23/Downloads/jihuo-tool/scripts/uninstall.sh 这里间接把uninstall.sh拖动到终端即可。记得mac运行是 sh xxxxx去运行.sh文件(记得sh前面加空格加门路) 呈现done阐明胜利。 再执行install.sh,与下面同理,呈现done,the kill xxxxx 阐明胜利。 而后敞开PhpStorm,从新关上PhpStorm,输出破解码激活即可 而后就成了,工夫是假的,曾经永恒激活了,而且是官网最新版本哦,如果你从新更新了,再执行下面的操作即可。 激活补丁下载地址PS: 破解补丁页面提取人数过多,导致分享的百度网盘链接容易被封:蛋疼ing,为限度人数,目前暂不提供页面间接提取,改为从文档提取关注我的微信公众号 徐公,回复 phpstorm,会主动将激活码发送给你 PhpStorm 最新破解装置教程,附激活码(2023 年 2 月 10 号,亲测无效)

February 25, 2023 · 1 min · jiezi

关于phpstorm:已解决xdebugphpStrom跳转报错导致闪退问题

解决办法:phpStorm设置勾销 _toString: 问题形容:调试index.php的时候失常,然而跳转到b.php里的断点当前:断点闪退,并返回502 php-fpm报错,log: WARNING: [pool www] child 13746 exited on signal 11 (SIGSEGV) after 148.756432 seconds from startnginx返回502,log: [error] 12950#12950: *10 recv() failed (104: Connection reset by peer) while reading response header from upstream, client调试细节: #strace -f -F -s1000 -t -T `ps aux | grep -E 'php' | awk '{print "-p" $2}' | xargs`#tail /var/log/messageslog: [pid 11885] 15:23:01 write(4, "[11885] [Step Debug] <- eval -i 142 -- KHN0cmluZykoJGN0cmwp\n", 60) = 60 <0.000044>[pid 11885] 15:23:01 write(4, "[11885] [Step Debug] <- eval -i 136 -- JEdMT0JBTFNbJ0lERV9FVkFMX0NBQ0hFJ11bJzM0NDcwZGUwLTRmNTUtNDFmOC04YTlmLTA1NTRhNTl iYmNmNSddPWVycm9yX3JlcG9ydGluZygpOw==\n", 156) = 156 <0.000025>[pid 11885] 15:23:01 recvfrom(5, "eval -i 142 -- KHN0cmluZykoJGN0cmwp\0", 128, 0, NULL, NULL) = 36 <0.001644>[pid 11885] 15:23:01 write(4, "[11885] [Step Debug] <- eval -i 142 -- KHN0cmluZykoJGN0cmwp\n", 60) = 60 <0.000044>[pid 11885] 15:23:01 --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x14} ---[pid 11885] 15:23:01 +++ killed by SIGSEGV +++[pid 11852] 15:23:01 <... epoll_wait resumed> 0x1b3f9e0, 1, 1000) = -1 EINTR (Interrupted system call) <0.863932>[pid 11852] 15:23:01 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_KILLED, si_pid=11885, si_uid=99, si_status=SIGSEGV, si_utime=5, si_stime=55} ---参考:'__toString BUG' ...

November 29, 2022 · 1 min · jiezi

关于phpstorm:Mac如何利用MAMP配置php

如何利用MAMP配置php? 教程一 、首先是配置MAMP PRO 至此MAMPPRO 曾经配置结束二 、配置phpstorm1、创立一个新的工程,门路抉择咱们刚在mamp 中创立的 我的项目文件夹,/Applications/MAMP/htdocs/我的项目文件夹。2、在首选 项外面搜寻servers ,点击➕, debugger 是咱们在mamp中 勾选的那个货色。3、而后 找到 deployment 。点➕,持续配置,这是是为了解决 phpstorm 本地不能post 获取到 表单数据的要害。4、而后找到 PHP 选项。抉择语言等级,点击 CLI Interpreter 前面的省略号。 5、就是选中咱们 mamp 的php 所在目录 ,而后 点击一下 open in Editor 。因为等下还要批改一下 php.ini 文件,把方才关上的 php.ini 文件的最初一行 后面的 “;” 去掉。 关上xdebug 。至此配置实现。建两个 简略的表单文件。 而后点击在chrome 中关上就能够测试post 了。点击右上角的电话图标,就是关上xdebug。对于xdebug 测试的话须要一步步点击能力运行,等我在理解一下。后续调试。如果不行的话,配置完 把phpstorm 重启一下,根本就能够了。

August 3, 2022 · 1 min · jiezi

关于phpstorm:phpstorm-配置-Xdebug-调试

对有有教训的程序员,应用 echo()、print_r ()、print_f ()、var_dump () 等函数足以调试 php 代码,如果你不喜爱这样的话,xdebug 就是一个十分好的 php 调试工具。 创立一个 php 文件,写入 phpinfo (); 这段代码。 而后拜访此 php 文件,复制以后页面所有文字。 关上 https://xdebug.org/wizard 站点将复制的内容全副填写进去,点击 “Analyse my phpinfo () output” 按钮进行检测 php 对应扩大 下载扩大 将下载的文件放入到对应 php 版本的扩大文件夹中 关上 php.ini 文件,在最下方减少 xdebug 扩大配置 [Xdebug]zend_extension=E:\phpstudy_pro\Extensions\php\php7.3.4nts\ext\php_xdebug-3.1.4-7.3-vc15-nts-x86_64.dllxdebug.remote_enable =1xdebug.remote_handler = "dbgp"xdebug.remote_host = "127.0.0.1"xdebug.remote_port = 9000xdebug.client_port = 9000xdebug.idekey = testxdebug.mode = debug 关上 phpstorm 的设置 抉择 PHP-Debug,将外面的端口批改成和 php.ini 外面的端口统一 配置 xdebug key, 确保端口和地址还有 key 必须和 php.ini 中的配置对应,IDE key 轻易填写。 ...

May 31, 2022 · 1 min · jiezi

关于phpstorm:PHPStorm多项目下Test-Sources-Root设置

问题最近用Lumen来做单元测试的时候遇到一个问题,就是用PHPStorm开了多个我的项目(用户侧和治理侧),这时候设置了Test Sources Root,会发现测试用例的命名空间PHPStorm无奈辨认。而如果间接是一个我的项目就没有这个问题。 解决方案钻研了良久,终于发现解决方案,能够实现多我的项目下PHPStorm对这些目录的辨认。 先设置为Test Sources Root在设置页面进行编辑,批改命名空间prefix。版权申明转载请注明作者和文章出处作者: X学生https://segmentfault.com/a/11...感觉不错的话请帮忙珍藏点赞~

August 27, 2021 · 1 min · jiezi

关于phpstorm:正测验证手机号

<?php/** * [verifyPhone description] 效验手机号码合法性 * @param  [type] $phone [description] 手机号 * @return [type]        [description] */function Verify_Phone($Phone = null){    /**     * 挪动:134、135、136、137、138、139、150、151、152、157、158、159、182、183、184、187、188、178(4G)、147(上网卡);     * 联通:130、131、132、155、156、185、186、176(4G)、145(上网卡);     * 电信:133、153、180、181、189 、177(4G);     * 卫星通信:1349;     * 虚构运营商:170;     * 130、131、132、133、134、135、136、137、138、139     * 145、147     * 150、151、152、153、155、156、157、158、159     * 170、176、177、178     * 180、181、182、183、184、185、186、187、188、189     */    $ret = false;    //判断是否有值    if($Phone){        $Phone_preg = '#^13[\d]{9}$|^14[5,7]{1}\d{8}$|^15[^4]{1}\d{8}$|^17[0,6,7,8]{1}\d{8}$|^18[\d]{9}$#';        //判断是否是正确手机号        if(preg_match($Phone_preg,$Phone)){            $ret = true;        }    }    return $ret;} var_dump(Verify_Phone());?>

July 30, 2021 · 1 min · jiezi

关于phpstorm:CIE4365-Coupled-Processes

Personal Assignment: Reactive Transport, CIE4365 Coupled Processes(Deadline Tuesday June 22, 2021)6th June 20211 Coupling Richards Equation, Heat Flow and Reactive Solute Trans-portWrite a MATLAB or Python code where you expand the code for unsaturated water and heat flow problem with acode for reactive transport. We will solve the simplified problem of microbial mineralization of glucose in soil thatwas introduced during the lecture (see lecture slides Lecture_biogeochemistry_2020.pdf). You need to implementthe problem, write a short report including a summary of the important equations, your assumptions and thescenarios you implemented.Please note, this is one of the individual assignments for the final grade.2 ApproachIn order to solve this problem we need to consider the states which will change during the simulation. Whenmodeling reactive transport all chemical species involved are states, so for this problem, in addition to the pressurehead (hw) and temperature (T ), we also need to consider the concentrations of oxygen (O2), glucose (C6H12O6),bacterial biomass (X or C5H9O2.5), CO2 and water (H2O). In order to simplify the problem we will initially assumethat only oxygen is transported with the water. Both glucose and biomass are immobile and present, dissolved inthe water phase, everywhere in the column. As a consequence, the total mass of glucose and biomass present in thenodes can change if the amount of water decreases, so the first version of the model should be implemented withinitial and boundary conditions that ensure that glucose concentrations remain constant. The initial concentrationof oxygen in the column is zero and it enters the column dissolved in the water entering the soil column at thetop. We initially assume that the growth and death rates of biomass are equal so the dissolved concentration of ofliving biomass remains constant (steady-state). Glucose is consumed and therefore depletes in time. As we are notinterested in the evolution of the CO2 concentrations in time we disregard this state. Therefore, we only need tosimulate the rate of change in the oxygen and glucose concentrations.In order to program this problem it is important to increase the complexity of the program step by step, whileensuring correct functioning of the code at every step. I suggest you follow the following steps: ...

June 18, 2021 · 5 min · jiezi

关于phpstorm:最新webstorm激活码goland激活码phpstorm激活码每4小时更新已持续更新3年

JetBrains是一家捷克的软件开发公司,该公司位于捷克的布拉格本激活码仅可用来学习和交换,禁止商业应用,有条件的用户倡议应用正版,毕竟反对正版,就是反对咱们软件行业! 本站所提供的JetBrains激活码每4小时更新一次,实用与该公司的24款开发工具与及相干产品。包含:AppCode- Swift 和 Objective-C IDE開發工具----点击此处收费获取AppCode激活码 。 CLion - 跨平台的[C]/[C++] [IDE]开发工具,反对[C++11] 、[C++14]、[libc++]以及[Boost]----点击此处收费获取CLion激活码。DataGrip- 一款数据库客户端工具]----点击此处收费获取DataGrip激活码。GoLand- [Go語言]的整合開發環境----点击此处收费获取GoLand激活码。IntelliJ IDEA - 2001年公布。一套智慧型的 Java 整合開發環境,特別專注與強調程式師的開發撰寫效率晋升----点击此处收费获取IDEA激活码。PhpStorm- PHP IDE開發工具----点击此处收费获取PhpStorm激活码。PyCharm - 一款結合了Django框架的Python IDE開發工具----点击此处收费获取PyCharm激活码。Rider - 一款疾速,功能强大,跨平台的.NET IDE开发工具----点击此处收费获取Rider激活码。RubyMine - 一套強大的Ruby on Rails IDE開發工具----点击此处收费获取RubyMine激活码。WebStorm - JavaScript的開發工具----点击此处收费获取WebStorm激活码。相干软件下载地址

November 23, 2020 · 1 min · jiezi

如何使用-PHP-Storm-进行优雅的项目开发

前言PHP Storm 这个开发工具,很多 phper 应该有所而为,甚至也有不少人使用其作为生产工具,但是很多人都没有最大限度的使用它,本文就来总结一些优雅开发的小技巧。 开发环境开发工具在看这篇文章之前,我想你应该已经安装好了 PHP Storm,如果没有你也可以尝试去官网下载页面,进行下载安装使用,关于许可,不在本文的讨论范围内,你可以使用以下方式获取免费许可。 教育许可GitHub 活跃开发者Microsoft MVP虽然有很多特殊方式可以激活,但是还是倡导使用正版软件。请尽量使用原版英文界面,不要安装汉化补丁。 PHP在此,我希望你最好能够安装最新的 PHP 发行版(7.3.x),进行开发和项目部署。 进入主题看到这里,我希望你已经准备好了上面所提到的,那么我们就开始解决开发中的一些问题。 Material-Theme-UI 这是我的默认开发界面,使用的是内置主题,Solarized Light ,开发工具内置的主题默认只会改变代码区域的主题色,像项目的索引,这些地方都不会变(当然 这些都可以去手动改)。而且,默认的图标的辨识度也不是很高。这里可以安装一个主题 Material Theme UI 注意看左侧,Project 处的索引,的项目图标有了明显的变化,这样当我们在同一个目录下有不同类型的文件时,就能通过图标很快的辨识出来。除此之外还有常见的 Model、util 、log 、public 、vendor 、config、static 、Middleware 、 Controller都会有特殊的图标用来提高辨识度,相比默认的要好的多。 .ignore看名字,就知道是用来创建忽略文件的,当我们创建一个新项目时,一些东西是不需要提交到版本管理库的,比如 composer 的 vendor 目录、node.js 的 node_modules 等等。这些目录通常都是不需要提交道版本管理库的,前端开发会有更多各种各样的这时候我们就可以用这个工具来快速创建。 可以看到,我们可以通过选择项目模板,来高效,快速准确地创建忽略文件。而且,当我们需要手动忽略某个目录时,也不需要手动去编辑 .gitignore 文件,只需要右键目录,选择对应的操作即可。 其他插件.env files support这个插件使用来支持 env 方法中提示的 PHP composer. json support用于 composer.json 中的一些提示根据不同框架LaravelThinkPHP5 Plugin...因为我只用过这两个框架相关的插件,其他的就不列举了。因为 Laravel 插件安装还是比较繁琐的,虽然繁琐,但是真的很强大,至于安装,可以参考这篇文章 送给Laravel 开发者Laravel IDE Helper 还有一个功能,很少有文章提到的,就是 模型注释。都知道 Laravel 是支持 ORM 的,但是,当我们直接通过对象获取模型的某个属性时,IDE 可能会提示你未定义的属性,但是这并不影响使用,只是开发过程中看起来比较糟糕,就像下面这样。出现了异常,但是我们数据库是有这个字段的,而对象上没有,但是因为我们继承了 根模型 Model ,上有 __get() 方法,所以在 id 下面显示了 点 来引起我们的注意,虽然这样代码对我们程序运行时没有影响,但是开发看起来却不是那么的友好。当我们使用模型注释后,就会为我们的每个模型对象自动生成如下的注释信息。 ...

July 12, 2019 · 2 min · jiezi

YII2项目中重写PhpStorm中对方法function的注释代码

1说明Yii2默认的可访问的路由都是action开头的,但是当项目多了action名称变长了,每次都要转换大小写对action进行全局的搜索,很是不方便,所以重写了phpstorm对function注释的工具,这样我们写好action方法的时候只要输入/**然后再按一个回车就可以出现以下代码了,如下图,自动对action进行了拆分,这样就能愉快的搜索了 2操作步骤·依次打开File->Settings->Editor->File and Code Templates(或者使用快捷键ctrl+shift+s)·找到界面右侧的Includes,再点击PHP Function Doc Comment,接着把以下代码复制进去,点击apply->ok即可 3、配置代码/*** @note: #if($NAME.length()>6) #set($formatAction = '') #if($NAME.substring(0,6) == 'action') #set($len = $NAME.length()) #set($actionName = $NAME.substring(6,$len)) #set($actionLen = ${len} - 6 - 1) #foreach($start in [0..$actionLen]) #set($end = ${start} + 1) #set($tmpStr = $actionName.substring($start,$end)) #if($tmpStr.toUpperCase() == $tmpStr) #set($tmpLowerStr = $tmpStr.toLowerCase()) #if($start != 0) #set($formatAction = "${formatAction}-") #end #set($formatAction = "${formatAction}${tmpLowerStr}") #else #set($formatAction = "${formatAction}${tmpStr}") #end #end * @action $formatAction #else * @func $NAME #end#else * @func $NAME #end${PARAM_DOC}#if (${TYPE_HINT} != "void") * @return ${TYPE_HINT}#end${THROWS_DOC}*/4、相关网站http://velocity.apache.org/en...https://wizardforcel.gitbooks... ...

July 3, 2019 · 1 min · jiezi

webstormphpstorm-解决-html-中的-js-代码-format-后空格问题

代码风格项设置,选择 HTML ,在 Other 这一栏的 Do not indent children of: 这一项设置中添加 script 标签即可。 如果要设置分号、逗号相关问题,在代码风格选择 JavaScript

June 17, 2019 · 1 min · jiezi

phpstorm-主题推荐

在日常的开发中发现IDE类型的开发工具对于提高我们的开发效率是大有帮助的。本文给大家分享的一个工具就是phpstorm。主要分享的是一些常用的快捷键以及较为好看的主题。后续持续更新。 主题安装material theme ui主题。先上传一个预览图。 第一步,打开设置,找到plugins的选项。 搜索框输入插件名称。 点击安装并重启phpstorm,下图看到的就是一个启动的引导页,我们可以针对该主题做定制化配置,也可以默认设置,这里我就是选择默认设置。 4.选择主题,同样的打开设置菜单,找到Editor->color scheme->general右侧的Scheme选项。

June 8, 2019 · 1 min · jiezi

有了它你就可以快速驾驭Yaf

1. 背景很多用Yaf(Yet Another Framework)进行开发的同学都会遇到以下几个常见的问题. 开发黑盒.在coding阶段,我们的IDE无法对Yaf相关函数进行补齐或者提示,开发流程处于一个黑盒下.文档不全.对Yaf底层实现原理不甚了解,遇到问题通常只能去看零零碎碎的文档,如果文档也无法解决自己的问题,就显得非常束手无策,开发体验很糟糕.源码阅读成本高.部分同学想通过阅读源码,彻底搞懂Yaf底层实现原理,但是由于Yaf是由C写的,以及源码实现里充斥着大量让人眼花缭乱的Zend API,对于大部分同学来说阅读成本相对较高. 2. 关于YAFPHP2.1 简介项目地址 : https://github.com/yinggaozhen/yaf-php Yaf-PHP采用原生PHP对Yaf源码进行了逻辑重写,最大程度还原其相关实现逻辑. 由于采用了原生PHP重写,可达到抹平阅读能力,降低阅读成本的目的.在平常开发时,也可以作为IDE Helper进行引入,加快开发效率. 2.2 最终效果废话不多说,我们先直接看最终效果图 2.3 安装> git clone https://github.com/yinggaozhen/yaf-php.git2.4 快速使用2.4.1 在PhpStorm引入两种实现方法 左侧导航栏 `External Libraries` -> `Configure PHP Include Path` -> 添加`Yaf-PHP`文件路径 -> `apply`菜单 `File` -> `Setting` -> `PHP` -> 添加`Yaf-PHP`文件路径 -> `apply`2.4.2 在NetBeans引入右击你的项目 -> `Properties` -> `PHP Include Path` -> `Add Folder..` -> 添加`Yaf-PHP`文件路径 -> `open`2.5 目前支持/完成的功能支持IDE对Yaf相关的识别/自动填充同时支持PSR-0以及PSR-4引入方式所有Yaf公有方法均以@link形式添加官方文档链接2.6 正在开发的功能目前以通过官方源码80%的测试用例,虽然目前仍在翻译中支持指定版本下的调试功能3 小结传送门 : https://github.com/yinggaozhe... 这个项目断断续续用了业余开发了将近有小半年了,目前仍在开发中,如果的大家有什么建议或者意见,可以在直接issue提给我,或者私信给我~ ...

May 26, 2019 · 1 min · jiezi

PhpStorm激活及常用快捷键

PhpStorm激活1、hosts文件添加如下内容     0.0.0.0 account.jetbrains.com     0.0.0.0 www.jetbrains.com 2、激活访问 http://idea.lanyus.com/ ,点击页面中的“获取注册码”,将复制的激活码填写到 Phpstorm 的Activation Code选项下,激活后即可使用。 PhpStorm常用快捷键 Alt+1 文件目录的显示/隐藏 Ctrl+D 复制粘贴当前行 Ctrl+F 搜索内容 Ctrl+G 定位行 Ctrl+R 替换文本 Ctrl+Z 撤销 Ctrl+Shift+Z 取消撤销 Ctrl+Shift+N 快速查找文件 Ctrl+Shift+I 快速查看变量或方法定义源 Ctrl+N 查找类 Ctrl+B 查找变量申明处 Ctrl+E 最近打开的文件 Ctrl+Alt+L 格式化代码

May 13, 2019 · 1 min · jiezi

PHP代码修正之CodeSniffer

Last-Modified: 2019年5月10日13:59:27 参考链接PHP开发规范之使用phpcbf脚本自动修正代码格式在PhpStorm中使用PSR2编码规范phpcbf脚本自动修正代码格式使用 PHP-CS-Fixer 的可以看这篇文章: https://learnku.com/laravel/t... 介绍PHP_CodeSniffer 是一个代码风格检测工具。它包含两类脚本,phpcs 和 phpcbf(GitHub地址) phpcs phpcs 脚本对 PHP、JavaScript、CSS 文件定义了一系列的代码规范(通常使用官方的代码规范标准,比如 PHP 的 PSR2),能够检测出不符合代码规范的代码并发出警告或报错(可设置报错等级)。 phpcbf phpcbf 脚本能自动修正代码格式上不符合规范的部分。比如 PSR2 规范中对每一个 PHP 文件的结尾都需要有一行空行,那么运行这个脚本后就能自动在结尾处加上一行空行。 php-cs-fixer该工具不包含在 PHP_CodeSniffer 中, 是在另一个独立的项目 https://github.com/FriendsOfP... php-cs-fixer 修复不规范代码 作用等同于 phpcbf 只不过规则好像稍有区别 安装composer global require "squizlabs/php_codesniffer=*"安装后会在全局的 Vendor目录下的 bin 中生成两个软链接: phpcbf -> ../squizlabs/php_codesniffer/bin/phpcbfphpcs -> ../squizlabs/php_codesniffer/bin/phpcs查看全局 Vendor 目录位置: composer global config bin-dir --absolute使用命令行模式将 phpcs 和 phpcbf 的目录加入环境变量设置默认代码标准 为了避免每次手动指定标准, 直接设置默认的代码标准为 PSR-2 phpcs --config-set default_standard PSR2phpcbf --config-set default_standard PSR2检测代码文件 ...

May 10, 2019 · 1 min · jiezi

PhpStorm配置Xdebug最完整最详解教程100成功

很多人好奇网上关于php配置xdebug的教程那么多,为什么我还要写这篇文章?因为我看了一下网上的教程配置很乱,有些配置项根本不需要,而且不够详细。 本教程主要应用于Windows,Mac和Linux基本上同理。 只配置Debug,不配置profiler和trace。因为大多数情况下是单用户调试,所以不需要配置多用户参数,如:php.ini 文件 xdebug.idekey 参数和 PhpStorm的Debug -> DBGp Proxy 。 所以大概配置如下: zend_extension = php_xdebug.dllxdebug.remote_enable = Onxdebug.remote_host = 127.0.0.1xdebug.remote_port = 9100xdebug官网下载地址:https://xdebug.org/download.php 扩展一定要装对,注意区分ts和nts版本。推荐 phpEnv集成环境 ,自带xdebug扩展 打开PhpStorm,File -> Settings 然后找到 Languages & Frameworks -> PHP -> Debug设置Debug port为9100为什么不是9000?因为会和一些集成环境的php-cgi或者php-fpm端口冲突. 然后配置Languages & Frameworks -> PHP -> Servers 然后找到PhpStorm右上角电话图标,开始监听php debug的链接 打开 phpEnv集成环境 的 TCP端口进程列表,有9100 说明监听成功 触发PhpStorm的debug方式主要有两种 GET、POST存在XDEBUG_SESSION_START 参数或者cookie里存在XDEBUG_SESSION,用户调试值随意。GET、POST会生成cookie XDEBUG_SESSION,有效期为1个小时(可修改配置)。很多教程需要下载chrome等浏览器插件,原理就是请求里附加cookie。php.ini 文件 xdebug.remote_autostart 参数设置为 On 或者1,无需设置GET、POST、cookie。个人推荐第1种,教大家用一种更简单的方式,不需要下载浏览器插件。找到PhpStorm右上角然后点小甲虫图标会在你配置的url里,携带GET参数XDEBUG_SESSION_START,同时生成cookie XDEBUG_SESSION,也就是说,下次(cookie有效期1小时)无需点击小甲虫,浏览器直接输入,如 www.a.com 或 www.a.com/chat/1/ 即可触发调试 ...

April 23, 2019 · 1 min · jiezi

phpstorm 基于lumen安装ide-helper

为了提高开发效率,也方便在model 中生成更多的属性和方法,尝试下ide-helper 安装composer require barryvdh/laravel-ide-helperUsing version ^2.6 for barryvdh/laravel-ide-helper./composer.json has been updatedLoading composer repositories with package informationUpdating dependencies (including require-dev)Package operations: 11 installs, 0 updates, 0 removals - Installing composer/xdebug-handler (1.3.2): Loading from cache - Installing composer/spdx-licenses (1.5.1): Loading from cache - Installing symfony/filesystem (v4.2.5): Loading from cache - Installing justinrainbow/json-schema (5.2.8): Loading from cache - Installing seld/phar-utils (1.0.1): Loading from cache - Installing seld/jsonlint (1.7.1): Loading from cache - Installing composer/semver (1.5.0): Loading from cache - Installing composer/ca-bundle (1.1.4): Loading from cache - Installing composer/composer (1.8.4): Loading from cache - Installing barryvdh/reflection-docblock (v2.0.6): Loading from cache - Installing barryvdh/laravel-ide-helper (v2.6.2): Loading from cachebarryvdh/reflection-docblock suggests installing dflydev/markdown (~1.0)barryvdh/laravel-ide-helper suggests installing doctrine/dbal (Load information from the database about models for phpdocs (~2.3))Writing lock fileGenerating optimized autoload files配置中加载(bootstrap/app.php) //ide helper $app->register(Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);自动生成php artisan ide-helper:generate报错google 了下,应该是未安装这个扩展,安装composer require league/flysystem再执行 ,搞定php artisan ide-helper:generateA new helper file was written to _ide_helper.php最好把生成的这些文件都放到git 忽略文件里_ide_helper.php_ide_helper_models.php.phpstorm.meta.php参考:https://laravelacademy.org/po…https://github.com/barryvdh/l… ...

April 8, 2019 · 1 min · jiezi

phpstudy & phpstorm 安装 xdebug

查看phpstudy 位数,和是否 NTS,TS 2. 去下载对应的xdebug .dll 文件3. 打开php.ini 配置,路径改成自己!![XDebug]xdebug.remote_enable=1 # 开启远程调试xdebug.idekey=‘PHPSTORM’ # sessionkeyxdebug.remote_port=9001 # 远程调试通信端口xdebug.profiler_output_dir=“C:phpStudyPHPTutorialtmpxdebug"xdebug.trace_output_dir=“C:phpStudyPHPTutorialtmpxdebug"zend_extension=“C:phpStudyPHPTutorialphpphp-7.1.13-ntsextphp_xdebug-2.7.0-7.1-vc14-nts.dll"4. phpstorm 配置 xdebug,打开设置搜索xdebug 更改端口改成9001避免fast-cgi 端口冲突 5. chrome 下 xdebug helper 扩展,然后选择他再开启他变成绿色6. 最后去开启phpstorm里面的监听(小电话)end 访问网址即可调出调试选择!!

April 1, 2019 · 1 min · jiezi

mbp上的PhpStorm快捷键

记录一下mac pro上面常用phpstorm的快捷键command + r 查找替换command + e 打开最近的文件command + d 复制当剪行command + l 跳到某一行command + z 向后command + shift + z 向前command + , 打开preferencescommand + shift + o 快速查询文件(相当于sublime的Ctrl+P)command + shift + f 关键字查找,更强大的查询器command + shift + r 高级替换command + (fn) + F12 查找当前文件函数(相当于sublime的ctrl+R)command + n 快速为每个成员属性生成 getter 及 setter 方法command + option + L 格式化代码option + shift + (上下箭头)上下行快速切换

March 14, 2019 · 1 min · jiezi

docker环境下,使用phpstorm进行debug

在上一篇文章中,阐述了在phpstorm安装xdebug。实际的开发过程中,由于历史项目的存在,不同框架的存在,我们需要借助docker来快速的实现开发环境的部署与统一,本文将阐述如何在docker下实现项目的xdebug。理论概述与在本机直接开发不同,docker环境下,大体是这样。宿主机,即我们开发用的电脑。我们看到,有以下几点不同:PHP环境不同本机开发时。项目的运行环境与IDEA上的CLI,都是本机环境,相统一。docker开发时,本机环境与dokcer环境可能不统一。项目的路径不同本机开发时,xdebug反馈的项目路径,就是开发机的实际路径。docker环境下,xdebug将docker主机的路径发送给宿主机,但宿主机接收到,在本机上的此路径上,找不到对应的文件。当然,也就没有办法进行正确的信息显示。远程地址不同本机开发时,远程主机地址就是本机地址,所以是127.0.0.1。docker开发时,远程主机地址,应该是宿主机地址。实施总结出上面的几点不同后,开始实施也变得简单了。统一PHPSTORM与docker的PHP环境配置 -> Languages .. -> PHPCLI Interpreter … -> + -> From Docker Vagrant如果不清楚PHP的路径的话,进行DOCKER容器,使用whereis php。如果在service找不到docker,需要进入配置 -> docker -> + -> 确定,则phpstorm会自动为我们找到当前存在的容器。映射路径配置 -> Languages .. -> PHP -> SERVICES -> +前面提本地项目路径,后面对应docker项目路径。注意:为了保持统一,在docker容器配置时,应该使用volumes来进行磁盘映射。修改远程地址修改docker容器中的,php.ini中的xdebug.remote_host=host.docker.internalhost.docker.internal代表:宿主机添加项目配置信息总结弄懂原理,善于看日志才是解决问题的捷径。

February 27, 2019 · 1 min · jiezi

使用phpstorm一步步配置Xdebug

使用PHPSTORM以及xdebug有些时间了,但每次一切换环境,貌似xdebug都会来点小问题。于是,准备花时间系统的将配置及排查的过程写一下,以便下次使用的时候,能够不再重复走过去的路。安装xdebug扩展略过。工作原理再借用动图一张:感谢原作者的辛苦付出, 点击查看原文有了上面的原理,在配置的时候,我们就有了方向。步骤如下:配置php.inixdebug安装后,需要配置相应的php.ini文件# 开启远程调试xdebug.remote_enable=1# 定义日志位置,很重要。当发生一些与我们的预期不一致的事件时,我们可以找到这个文件查看。xdebug.remote_log=/var/log/xdebug.log# 远程调试服务器(我们开发的装有PHPSTORM机器)的端口,默认就是这个端口,所以如果你就是用的9000,此项可忽略。xdebug.remote_port=9000# 远程调试服务器(我们开发的装有PHPSTORM机器)的地址,如果XDEBUG和PHPSTORM都是一台机器上,那么这个地址写127.0.0.1即可.xdebug.remote_host=127.0.0.1# 定义IDE KEY。定义后,可以忽略。xdebug.idekey=PHPSTORM注意:查看日志很重要,所以xdebug.remote_log此项配置很重要。测试创建test.php并输入<?php phpinfo();,访问该文件,查看debug信息。同时,还可以看到一些配置信息:配置PHPSTORM配置XDEBUG打开配置界面 -> Languages & Frameworks -> PHP -> Debug此项默认开启,故可忽略点击确定后,按系统不同,可以查看本机9000端口是否开放。panjiedeMac-Pro:~ panjie$ lsof -i:9000COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEPHPSTORM 98883 panjie 293u IPv4 0x9dffc3bec4b8f68b 0t0 TCP *:cslistener (LISTEN)端口直接的启动后,我们便设置好的调试服务器 127.0.0.1和端口9000了。这时候,我们的XDebug便可以找到我们配置CLI打开配置界面 -> Languages & Frameworks -> PHP点击 + , 并选择自己的PHP环境。安装浏览器扩展chrome安装xdebug helper,firefox也类似。作用主要是向cooikes写一个XDEBUG_SESSION=PHPSTORM。安装后,设置一下,否则默认的是eclipse。启用xdebug helper点击enable后,刷新页面。此时:浏览器将带有XDEBUG_SESSION=PHPSTORM发送给PHPPHP将控制权给了xdebugxdebug获取到XDEBUG_SESSION时,与自己的设定时进行比较,相同,则向127.0.0.1:9000发送信息,并中断执行PHPSTORM接收到信息,将信息显示到控制台,并对应的在对应的文件上显示断点,同时发出中断执行指令PHPSTORM发出继续执行指令进行下一步debug.

February 27, 2019 · 1 min · jiezi

PhpStorm配置Xdebug调试

安装xdebug去官网下载对应版本的xdebug扩展 XDEBUG EXTENSION FOR PHP | DOWNLOADS 如何选择正确版本输出phpinfo()函数的内容查看输出页面的网页源码全选复制到这个页面 XDEBUG EXTENSION FOR PHP | DOCUMENTATION | INSTALLATION ,将刚才复制的内容拷贝进去,并分析可以得到自己当前版本的php对应哪一个xdebug文件安装扩展这个windows系统和Linux系统是不一样的(网上很多,不细说)windows放到php ext的目录下配置php.ini [XDebug] zend_extension = “D:\你php的ext目录位置\php\ext\php_xdebug.dll” xdebug.remote_autostart=1 xdebug.remote_enable = On xdebug.remote_handler = “dbgp” xdebug.remote_host = “localhost” #本地服务器 xdebug.remote_port = 9010 #默认为9000,防止与php-fpm冲突,改为9010 xdebug.idekey=“PHPSTORM” #会话需要的key Linux这个很多种情况,一般就apt和yum,如果手动编译就需要.so扩展配置phpStorm先查看xdebug是否安装成功接下去配置phpstorm我是基于这个版本的打开phpstorm配置文件设置本地的php解释器,即php的二进制文件,windows下的php安装路径下的php.exe,类unix系统就是bin/php文件如果没有上述选项填写服务器端的相关信息Host指的是服务器对应的项目的访问域名本地nginx我用127.0.0.1用默认的80端口配置xdebug选项配置DBGp Proxy添加一个调试配置配置chrome安装浏览器插件使用的是Chrome浏览器,安装 xdebug helper插件,无法使用应用商店的可以到国内镜像网站去下配置插件开始调试

February 2, 2019 · 1 min · jiezi

Lumen微服务生成Swagger文档

作为一名phper,在使用Lumen框架开发微服务的时候,API文档的书写总是少不了的,比较流行的方式是使用swagger来写API文档,但是与Java语言原生支持 annotation 不同,php只能单独维护一份swagger文档,或者在注释中添加annotations来实现类似的功能,但是注释中书写Swagger注解是非常痛苦的,没有代码提示,没有格式化。本文将会告诉你如何借助phpstorm中annotations插件,在开发Lumen微服务项目时(Laravel项目和其它php项目方法类似)快速的在代码中使用注释来创建swagger文档。本文将会持续修正和更新,最新内容请参考我的 GITHUB 上的 程序猿成长计划 项目,欢迎 Star,更多精彩内容请 follow me。框架配置我们使用当前最新的 Lumen 5.7 来演示。演示代码放到了github,感兴趣的可以参考一下https://github.com/mylxsw/lumen-swagger-demo安装依赖在Lumen项目中,首先需要使用 composer 安装SwaggerLume项目依赖composer require darkaonline/swagger-lume项目配置在bootstrap/app.php文件中,去掉下面配置的注释(大约在26行),启用Facades支持。$app->withFacades();启用SwaggerLume 项目的配置文件,在 Register Container Bindings部 分前面,添加$app->configure(‘swagger-lume’);然后,在 Register Service Providers 部分,注册 SwaggerLume 的ServiceProvider$app->register(\SwaggerLume\ServiceProvider::class);在项目的根目录,执行命令 php artisan swagger-lume:publish 发布swagger相关的配置执行该命令后,主要体现以下几处变更在 config/ 目录中,添加了项目的配置文件 swagger-lume.php在 resources/views/vendor 目录中,生成了 swagger-lume/index.blade.php 视图文件,用于预览生成的API文档从配置文件中我们可以获取以下关键信息api.title 生成的API文档显示标题routes.api 用于访问生成的API文档UI的路由地址默认为 /api/documentationroutes.docs 用于访问生成的API文档原文,json格式,默认路由地址为 /docspaths.docs 和 paths.docs_json 组合生成 api-docs.json 文件的地址,默认为 storage/api-docs/api-docs.json,执行php artisan swagger-lume:generate命令时,将会生成该文件语法自动提示纯手写swagger注释肯定是要不得的,太容易出错,还需要不停的去翻看文档参考语法,因此我们很有必要安装一款能够自动提示注释中的注解语法的插件,我们常用的IDE是 phpstorm,在 phpstorm 中,需要安装 PHP annotation 插件安装插件之后,我们在写Swagger文档时,就有代码自动提示功能了书写文档Swagger文档中包含了很多与具体API无关的信息,我们在 app/Http/Controllers 中创建一个 SwaggerController,该控制器中我们不实现业务逻辑,只用来放置通用的文档信息<?phpnamespace App\Http\Controllers;use OpenApi\Annotations\Contact;use OpenApi\Annotations\Info;use OpenApi\Annotations\Property;use OpenApi\Annotations\Schema;use OpenApi\Annotations\Server;/** * * @Info( * version=“1.0.0”, * title=“演示服务”, * description=“这是演示服务,该文档提供了演示swagger api的功能”, * @Contact( * email=“mylxsw@aicode.cc”, * name=“mylxsw” * ) * ) * * @Server( * url=“http://localhost”, * description=“开发环境”, * ) * * @Schema( * schema=“ApiResponse”, * type=“object”, * description=“响应实体,响应结果统一使用该结构”, * title=“响应实体”, * @Property( * property=“code”, * type=“string”, * description=“响应代码” * ), * @Property(property=“message”, type=“string”, description=“响应结果提示”) * ) * * * @package App\Http\Controllers /class SwaggerController{}接下来,在业务逻辑控制器中,我们就可以写API了<?phpnamespace App\Http\Controllers;use App\Http\Responses\DemoAdditionalProperty;use App\Http\Responses\DemoResp;use Illuminate\Http\Request;use OpenApi\Annotations\Get;use OpenApi\Annotations\MediaType;use OpenApi\Annotations\Property;use OpenApi\Annotations\RequestBody;use OpenApi\Annotations\Response;use OpenApi\Annotations\Schema;class ExampleController extends Controller{ /* * @Get( * path="/demo", * tags={“演示”}, * summary=“演示API”, * @RequestBody( * @MediaType( * mediaType=“application/json”, * @Schema( * required={“name”, “age”}, * @Property(property=“name”, type=“string”, description=“姓名”), * @Property(property=“age”, type=“integer”, description=“年龄”), * @Property(property=“gender”, type=“string”, description=“性别”) * ) * ) * ), * @Response( * response=“200”, * description=“正常操作响应”, * @MediaType( * mediaType=“application/json”, * @Schema( * allOf={ * @Schema(ref="#/components/schemas/ApiResponse"), * @Schema( * type=“object”, * @Property(property=“data”, ref="#/components/schemas/DemoResp") * ) * } * ) * ) * ) * ) * * @param Request $request * * @return DemoResp / public function example(Request $request) { // TODO 业务逻辑 $resp = new DemoResp(); $resp->name = $request->input(’name’); $resp->id = 123; $resp->age = $request->input(‘age’); $resp->gender = $request->input(‘gender’); $prop1 = new DemoAdditionalProperty(); $prop1->key = “foo”; $prop1->value = “bar”; $prop2 = new DemoAdditionalProperty(); $prop2->key = “foo2”; $prop2->value = “bar2”; $resp->properties = [$prop1, $prop2]; return $resp; }}这里,我们在响应结果中,引用了在SwaggerController中定义的 ApiResponse,还引用了一个没有定义的ExampleResp对象,我们可以 app\Http\Responses 目录(自己创建该目录)中实现该ExampleResp对象,我们将响应对象都放在这个目录中<?phpnamespace App\Http\Responses;use OpenApi\Annotations\Items;use OpenApi\Annotations\Property;use OpenApi\Annotations\Schema;/* * @Schema( * title=“demo响应内容”, * description=“demo响应内容描述” * ) * * @package App\Http\Responses /class DemoResp extends JsonResponse{ /* * @Property( * type=“integer”, * description=“ID” * ) * * @var int / public $id = 0; /* * @Property( * type=“string”, * description=“用户名” * ) * * @var string / public $name; /* * @Property( * type=“integer”, * description=“年龄” * ) * * @var integer / public $age; /* * @Property( * type=“string”, * description=“性别” * ) * * @var string / public $gender; /* * @Property( * type=“array”, * @Items(ref="#/components/schemas/DemoAdditionalProperty") * ) * * @var array / public $properties = [];}返回对象引用其它对象<?phpnamespace App\Http\Responses;use OpenApi\Annotations\Property;use OpenApi\Annotations\Schema;/* * * @Schema( * title=“额外属性”, * description=“额外属性描述” * ) * * @package App\Http\Responses /class DemoAdditionalProperty{ /* * @Property( * type=“string”, * description=“KEY” * ) * * @var string / public $key; /* * @Property( * type=“string”, * description=“VALUE” * ) * * @var string */ public $value;}生成文档执行下面的命令,就可以生成文档了,生成的文档在storage/api-docs/api-docs.json。php artisan swagger-lume:generate预览文档打开浏览器访问 http://访问地址/docs,可以看到如下内容访问 http://访问地址/api/documentation,我们看到接口详细信息展开更多本文简述了如何在Lumen项目中使用代码注释自动生成Swagger文档,并配合phpstorm的代码提示功能,然而,学会了这些还远远不够,你还需要去了解Swagger文档的语法结构,在 swagger-php 项目的 Examples 目录中包含很多使用范例,你可以参考一下。团队项目中使用了swagger文档,但是总得有个地方管理文档吧,这里推荐一下 Wizard 项目,该项目是一款用于团队协作的文档管理工具,支持Markdown文档和Swagger文档,感兴趣的不妨尝试一下。 ...

January 2, 2019 · 3 min · jiezi