E-COM-NET

  • 首页
  • 在线工具
  • Layui镜像站
  • SUI文档
  • 联系我们
adobe1992
adobe1992

PhpStorm的使用

  • Php

(1)PhpStorm使用技巧分享

PhpStorm使用技巧分享

为什么不使用 VIM 或 Sublime,因为它们实质是 Editor,而非 IDE。

 

最好的IDE:Microsoft Visual Studio, JetBrains 系列。JetBrains的IDE系列包括:

  • PhpStorm(PHP)
  • WebStorm(JavaScript, ...)
  • IntelliJ IDEA(Java)
  • RubyMine(Ruby)
  • PyCharm(Python)
  • AppCode(Objective-C,C,C++)
  • CLion(C,C++)

     

此分享同样适用于JetBrains的其它IDE。 

一、 VCS 与 PhpStorm 的整合操作(Mercurial,同样适用于Git、SVN)

TortoiseHg 是 Mercurial 的 GUI 客户端。Mercurial 包含下列基本概念:

  • 【Init】 初始化,创建一个空的仓库。
  • 【Clone】 复制仓库,来源可以是一个http或ssh链接表示的仓库,也可以是本地仓库。
  • 【Commit】 提交,即接受所有的改动将当前版本作为最新版本(也叫tip)。只提交的本地仓库,而且本地仓库会详细记录所有的变动(称为变更集或改动集)。多次提交并不会影响远程仓库。
  • 【Revert】 恢复,即撤销所有的改动,恢复到未更改的状态。
  • 【Pull】 拉取,将雅远程仓库有而当前仓库没有的变更集“下载”到本地仓库。不过这只是添加了变更集,本地文件并不会改动。
  • 【Update】 更新,当获取了其他变更集,更改以保持和远程仓库一致。
  • 【Push】 推送,将当前仓库的变更集“上传”到其他仓库去。
  • 【Merge】 合并。当一个文件同时被多次修改,并存放在多个仓库时,要获得一个统一的版本就需要合并。

     

    更多关于 Mercurial 和 TortoiseHg 的介绍,参见 TortoiseHg 学习笔记,Mercurial 有哪些优点?适合怎样的开发者或团队使用?

     

PhpStorm 提供了与 IDE 整合的 VCS 功能。就公司项目而言,项目已包含源码管理的配置信息,可直接被 PhpStorm 识别为 Mercurial 项目。功能主要位于右键菜单 Mercurial 项(与菜单栏 VCS > Mercurial 功能基本相同),以及 Changes 面板(通过菜单栏 View > Tool Windows > Changes 打开)。

 

功能与 TortoiseHg 相似,但与 IDE 整合得更好。尤其是 History 和 Change 系列,特色功能如下:

  • 在目录、文件、方法、字段上右键 Mercurial > Show History / Show History for Method|Field,可查看目录、文件、方法、字段的历史版本(实际显示时仅显示存在差异的版本)。
  • 在文件上右键 Mercurial > Compare with,可与此文件的任意历史版本比较。功能与 Beyond Compare 3 各有所长。
  • Changes 面板上包含了当前工作区所有未提交的文件管理操作(若公司所有项目以单个Project打开,可同时管理多个Repo),可方便的进行比对、重置、提交等操作。

     

二、 智能(Intelligent)

JetBrains系列产品的一大特色在于优秀的代码分析功能,其从语法、惯用写法、常用库推测等角度尽可能的理解代码结构和行为,为代码编辑、智能提示、代码重构等提供支持。(不仅仅是语法着色和字段、成员提示。没错,我就是在黑Eclipse)

 

尽管PHP和JS是弱类型/动态类型语言,使得分析结果不如强类型/静态类型语言完美。但合理使用功能可提升开发效率和避免手误。

 

在此列出部分实用功能(皆位于右键菜单上),抛砖引玉。如下:

 

  • Find Usages 查找用例

     

    在类、方法、字段、变量等元素上查找此其在项目中所有被使用的场景。(会遗漏call等字符串形式的非显式调用)

     

    所查找到的场景,包括类、方法、字段、变量的定义、赋值、使用、Doc注释等。

  • Go To 转到某处

     

    • Declaration 转到声明

       

      对于接口、抽象方法、变量等,转到声明定义的位置。其余与 GoTo Implemention 相同。

    • Implemention 转到实现

       

      找到元素的实现位置。为系统类、方法时,转到API定义(已配置源码时可查看源码)。

  • Refactor 代码重构

     

    • Rename 重命名

       

      对目录、文件、类、方法、字段、变量等元素重命名,重命名前会查找所有可能的用例(包括Doc注释,可能包含误判)。

       

      实际重命名前检查用例列表,使用Include/Exclude加入或排除用例。对于无需查找用例的场景,可在rename的对话框上取消查找用例。

    • Extract Field 导出字段

       

      将变量重构为成员,相关写法自动变更。(不要做手动替换的傻事,极易遗漏)

    • Extract Method 导出方法

       

      将代码块重构为方法,相关调用写法自动变更。

  • Generate 代码生成

    • Constructor 实现构造器/构造方法

    • Implement/Override Methods 实现/重写方法

    • Setter/Getter 实现属性访问器

    • Doc Block 实现注释块

       

还有更多功能,有兴趣自行查阅官方手册或博客。代码模板功能不建议使用。

 

三、 编辑(更高效)

  • Floding > Expand/Collapse

     

    代码上右键操作,展开或收缩代码。实际使用时,可对整个文件或选取操作。菜单上提供了更多功能。

  • Reformat Code

     

    菜单栏上 Code > Reformat Code,对整个文件或选取进行代码格式化操作。

  • 多行编辑

     

    按住 Alt 后鼠标选中多行,可多行同时输入。对于写数组等很好用。

     

    此功能 Notepad++ 上需选项内开启可用,VS等部分IDE可用

  • Alt+UP/DOWN

     

    Alt+Up/Down 快速在转到上一个、下一个方法

  • TAB/Shift+TAB

     

    Shift+Tab 是 Tab 的反操作。

     

    此功能 Notepad++ 可用,VS等部分IDE可用_

     

     

  • Ctrl+TAB Alt+LEFT/RIGHT

     

    Ctrl+Tab,切换至在最近操作的上一个编辑窗口。长按时选选择切换至哪一个窗口。

     

    Alt+Left/Right,按显示顺序切换至左边或右边的编辑窗口。

     

    此功能大部分IDE可用

  • HOME/END Shift+方向 Shift+HOME/END

     

    Home/End 输入光标移动至当前行的头或尾

     

    Shift+方向 选中至对应方向(与鼠标选中相同)

     

    Shift+Home/End 选中从输入光标至头或尾的部分

     

    此功能基本通用

  • Ctrl+方向 Ctrl+HOME/END

     

    Ctrl+方向 与鼠标滚轮相同,上下左右滚动(与输入光标无关)

     

    Ctrl+Home/End 转到文件起始或文件结尾

     

    此功能基本通用

     

快捷键部分,基本都为非必要功能,但可减轻切换鼠标打乱键盘操作流程的影响。对全键盘工作有兴趣的同学,可关注VIM(个人觉得矫枉过正)。

 

 

四、 实用工具

  • TODO/...

     

    建立TAG,方便在源码层面上标记。除内置标记外,还可自行添加HACK、WARN等惯用标记。

     

    TODO标签可在菜单栏 View > Tool Windows > TODO 打开的面板上更方便的处理。

  • Changes

     

    Changes 面板上包含了当前工作区所有未提交的文件管理操作(若公司所有项目以单个Project打开,可同时管理多个Repo),可方便的进行比对、重置、提交等操作。

     

    可在菜单栏 View > Tool Windows > Changes 打开面板。

  • Structure

     

    显示当前代码页的类、成员、方法等。与其它IDE的大纲相似。

     

    可在菜单栏 View > Tool Windows > Structure 打开面板。

  • Bookmarks/Favorites

     

    Bookmarks书签,菜单栏 Navigate > Bookmarks > Show Bookmarks 打开。

     

    Favorites收藏,菜单栏 View > Tool Windows > Favorites 打开。

  • Terminal

     

    控制台,菜单栏 View > Tool Windows > Terminal 打开。

     

    使用构建工具等需控制台输入命令时常用。

  • Recent Changes / Recent Files

     

    Recent Changes,查看最近变化(与VCS无关)。 菜单栏View > Recent Changes打开。

     

    Recent Files,查看最近的操作文件列表。菜单栏View > Recent Files或快捷键Ctrl+E打开。

  • Presentation Mode 展示模式

     

    和伙伴一起阅读代码时,通过菜单栏 View > Enter Presentation Mode进入展示模式。将以大字体且隐藏各功能组件的形式展示代码。

     

更多功能查看菜单或鼠标右键

 

五、 PhpStorm的常用配置

PhpStorm 配置分为 Default Settings 和 Settings 两个系列,前者为新建项目时的默认配置,后者为当前项目配置。通常,直接修改当前配置即可。在配置对话框内,可在树形菜单里查找配置项,也可直接在搜索框内搜索。

 

  • 已修改文件但未保存文件上显示*

     

    Editor –> General -> Editor Tabs 选中 Mark modifyied tabs with asterisk

  • 取消自动保存(视个人使用习惯而定)

     

    Appearance & Behavior -> System Settings 取消 Save files on frame deactivation

  • 禁止启动时自动打开上一次的项目(多项目时常用)

     

    Appearance & Behavior -> System Settings 取消 Reopen last project on startup

  • 显示行号(视个人使用习惯而定)

     

    Editor -> General -> Appearance 勾选 Show line numbers

  • 下载jQuery等库实现更好的提示功能

     

    Lanuages & Frameworks -> JavaScript -> Libraries 点击 Download 下载所需库

  • 主题

     

    Appearance & Behavior -> Appearance 修改 Theme

  • 快捷键

     

    Appearance & Behavior -> Keymap 修改 Keymaps 类型或自定义具体功能按键

      

六、 性能

PhpStorm 默认启动为 32 位程序,若有需要,启动安装目录下的 PhpStorm64.exe 程序。

 

PhpStorm 为 Java 程序,安装目录存在文件 PhpStorm.exe.vmoptions(启动64位时为PhpStorm64.exe.vmoptions)。此文件为 Java 虚拟机配置文件,可按实际机器性能调整。

 

笔记本电脑等电量功耗敏感的使用场景,在必要时,点击 PhpStorm 右下角的“医生”图标调整智能级别和是否开启省电模式。

 

七、 调试

  1. 在 PHP 上配置 XDebug

     

    XAMPP 已包含 XDebug 组件,但未启用。若需在其它环境上需自行安装,请查阅文末参考链接。

     

    在 php.ini(\php\php.ini) 的末尾找到 [XDebug] 配置段,取消 ; 注释、并设置 xdebug.remote_enable = 1。配置如下:

     

     [XDebug]
     zend_extension = "C:\**\xampp\php\ext\php_xdebug.dll"
     xdebug.remote_enable = 1
     xdebug.remote_handler = "dbgp"
     xdebug.remote_host = "127.0.0.1"

    其中的 zend_extension 等路径与 XAMPP 安装路径有关。

     

    配置完成重启 Apache,使用 PHP 的 phpinfo() 函数打印环境信息,确认XDebug模块已正确打开。

  2. 配置 PhpStorm

     

    按 File > Settings > Languages & Frameworks > PHP > Debug > DBGp Proxy 打开配置面板,按下列内容配置:

     

     IDE key: PHPSTORM
     Host:    localhost
     Port:    80
  3. 配置 浏览器 

Chrome 可安装 [Xdebug helper][xdebug_helper] 插件,FireFox 可安装 [easy Xdebug][easy_xdebug] 插件,并配置  `IDE key` 为 `PHPSTORM`。

IE 等无插件或Chrome商店被墙(GFW)等场景下,可使用 PhpStorm 提供的浏览器书签(bookmarklet)的方案。将[Xdebug & Zend Debugger bookmarklets generator for PhpStorm][phpstorm_bookmarklet]上的【Start debugger】、【Stop debugger】、【Debug this page】三个链接设置为浏览器书签,在需调试的页面点击书签执行作为书签链接的JS代码。
  1. 调试过程

     

    在 PhpStorm 上点击 Run > Start Listening for PHP Debug Connections,确保已开始监听调试器(也可在Toolbar在点击图标,电话形状位于VCS左侧)。

     

    在所需调试代码上设置断点(或其它调试方式)。

     

    在已配置好XDebug的浏览器上发起能执行到中断(break)代码的请求(刷新页面或Ajax),PhpStorm将提示中断。

  2. 调试技巧

     

    与其它IDE相似,PhpStorm提供了断点在内的完整调试功能。常用功能如下:

     浏览调用堆栈,并查看调用堆栈上任意节点(Frame)的工作现场。

    •  

        $var = 'a';
        function f1() {
            $var = 'c';
            phpinfo(); // 命中断点  /* Frame3, $var === 'c' */
        }
        function f2() {
            $var = 'b';
            f1();   /* Frame2, $var === 'b' */
        }
        f2();   /* Frame1, $var === 'a' */
    • 当前中断时刻,浏览全局对象和局部变量,需要时可对其修改(数组、对象也可修改)

    • 当前中断时刻,执行执行输入的PHP代码(Evaluate Expression)

    • 对于需要跨中断监控的变量、对象值,在Watches面板设置表达式快捷显示(对于复杂对象上某个字段有用)

    • 逐语句、逐过程、断点列表等功能

    • 首行中断,将在执行至第一行代码时中断。在不清楚项目的入口结构时有用。

  3. 其它说明

     

    上述配置方法同时适用于远程调试(非localhost)。

     

    JetBrains公司在Chrome上还提供了和JetBrans系列IDE(PhpStorm, WebStorm ...)配套使用的 Javascript Debugger.

     

     

参考

  • [Blog] TortoiseHg 学习笔记
  • [Ask] Mercurial 有哪些优点?适合怎样的开发者或团队使用?
  • [Plugin] easy Xdebug
  • [Plugin] Xdebug helper
  • [Official] Xdebug & Zend Debugger bookmarklets generator for PhpStorm
  • [Official] Zero-configuration Web Application Debugging with Xdebug and PhpStorm
  • [Blog] PHPStorm中调试PHP代码
  • [Blog] windows环境phpstorm调试环境搭建
  • [Blog] PHPStorm下XDebug配置
  • [Blog] 使用phpstorm和xdebug实现远程调试

     

     
(2)phpstorm常用快捷键

windows下phpstorm的快捷键

ctrl+shift+n查找文件

ctrl+shift+f 在一个目录里查找一段代码(ctrl+f的升级版)

ctr+shift+r 在一个目录里查找一段代码并替换(ctrl+r的升级版)

CTRL+ALT ←/→  返回上次编辑的位置
ALT+ ←/→  切换代码视图,标签切换
ALT+ ↑/↓  在方法间快速移动定位


ctrl+j插入活动代码提示
ctrl+alt+t当前位置插入环绕代码
alt+insert生成代码菜单
ctrl+q查看代码注释
ctrl+d复制当前行
ctrl+y删除当前行
shift+F6重命名
ctrl+shift+u字母大小写转换
ctrl+f查找
ctrl+r替换
F4查看源码

ctrl+shift+i查看变量或方法定义源
ctrl+g跳转行
ctrl+alt+F12跳转至当前文件在磁盘上的位置
alt+down查看下一个方法
alt+up查看上一个方法
ctrl+alt+l重新格式化代码
ctrl+shift+downstatement向下移动
ctrl+shift+upstatement向上移动
alt+shift+downline向下移动
alt+shift+upline向上移动
ctrl+/行注释
ctrl+shift+/块注释
ctrl+shift+n打开工程中的文件
ctrl+b跳到变量申明处
ctrl+[]匹配 {}[]
ctrl+shift+]/[选中块代码
ctrl+x剪切行
ctrl+shift+v复制多个文本
alt+left/right标签切换
ctrl+p显示默认参数
ctrl+F12在当前类文件里快速查找方法 

--------------------------------------------------------------

phpstorm快捷键:
// ctrl+shift+n 查找文件
// ctrl+j 插入活动代码提示
// ctrl+alt+t 当前位置插入环绕代码
// alt+insert 生成代码菜单

// ctrl+q 查看代码注释
// ctrl+d 复制当前行
// ctrl+y 删除当前行
// shift+F6 重命名
// ctrl+shift+u 字母大小写转换
// ctrl+f 查找
// ctrl+r 替换
// F4 查看源码
// ctrl+shift+i 查看变量或方法定义源
// ctrl+g 跳转行
// ctrl+alt+F12 跳转至当前文件在磁盘上的位置
// alt+down 查看下一个方法
// alt+up 查看上一个方法

// ctrl+alt+l 重新格式化代码
// ctrl+shift+down statement向下移动
// ctrl+shift+up statement向上移动
// alt+shift+down line向下移动
// alt+shift+up line向上移动
// ctrl+/ 行注释
// ctrl+shift+/ 块注释


// ctrl+shift+n 打开工程中的文件
// ctrl+b 跳到变量申明处
// ctrl+[] 匹配 {}[]
// ctrl+shift+]/[ 选中块代码
....
// ctrl+x 剪切行
// ctrl+shift+v 复制多个文本
// alt+left/right 标签切换
// ctrl+p 显示默认参数
// ctrl+F12 在当前类文件里快速查找方法

你可能感兴趣的:(Php)

  • mac os 10.9 mysql_MAC OSX 10.9 apache php mysql 环境配置 AY05 macos10.9mysql
    #终端内运行sudoapachectlstart#启动Apachesudoapachectlrestart#重启Apachesudoapachectlstop#停止Apache#配置Apachesudovi/private/etc/apache2/httpd.conf#将里面的这一行去掉前面的##LoadModulephp5_modulelibexec/apache2/libphp5.so#配置P
  • 2022-01-13 天气晴 心情好 楠楠的qzone
    今天主要是吧系统的一些功能给转移到另外一个系统上,然后遇到了一个很差劲的客户,不过呢我也是见多了不去计较了,因为什么样的人都有,平常心就好。晚上去吧thinkphp6的基础知识好好的看了一下,还是学到了很多好东西
  • SQL笔记纯干货 AI入门修炼 oracle数据库sql
    软件:DataGrip2023.2.3,phpstudy_pro,MySQL8.0.12目录1.DDL语句(数据定义语句)1.1数据库操作语言1.2数据表操作语言2.DML语句(数据操作语言)2.1增删改2.2题2.3备份表3.DQL语句(数据查询语言)3.1查询操作3.2题一3.3题二4.多表详解4.1一对多4.2多对多5.多表查询6.窗口函数7.拓展:upsert8.sql注入攻击演示9.拆表
  • 从0到1学PHP(二):PHP 基本语法:构建代码的基石 奔跑吧邓邓子 项目攻略php开发语言基本语法
    目录一、PHP标记与注释1.1PHP的起始和结束标记1.2单行注释和多行注释二、变量与数据类型2.1变量的定义、命名规则和使用方法2.2数据类型详解2.3数据类型的转换三、运算符与表达式3.1各类运算符的使用3.2表达式的组成和运算规则一、PHP标记与注释1.1PHP的起始和结束标记在PHP编程中,起始标记是极为重要的基础概念。当PHP解析器处理文件时,一旦识别到结束标记,标记之外的内容会被忽略。
  • 我的ThinkPHP5框架开发22讲:从入门到实践的探索之旅 a1237567892 安全
    我的ThinkPHP5框架开发22讲:从入门到实践的探索之旅在编程的世界里,框架就像是一座座灯塔,照亮着开发者前行的道路。而当我第一次接触到ThinkPHP5这个PHP框架时,它就像是我探索路上的那颗最亮的星。今天,我想和大家分享我的ThinkPHP5框架开发22讲,这是我从一个初学者到逐渐熟练的实践过程。第1讲:初识ThinkPHP5记得那是一个阳光明媚的周末,我在网上浏览PHP框架的资料时,偶
  • 开启 PHP 初阶之旅:解锁高效入门之道 API_Zevin php开发语言人工智能大数据前端python后端
    在当今动态网页开发领域,PHP作为一门久经沙场的服务器端脚本语言,以其强大功能与广泛适用性,持续吸引着无数初学者踏入编程殿堂。若你决心攻克PHP,为Web开发世界添砖加瓦,一系列精准策略与实用方法将成为你加速入门的得力伙伴,引领你穿越初期懵懂,迈向熟练驾驭的新征程。一、筑牢基础:语法地基稳扎稳打PHP语法虽具灵活性,初学者仍需系统研习,构建扎实根基。从变量声明起步,领会PHP变量“$”符号前缀特色
  • 面试宝典 phpdi
    1.引用变量考点引用变量定义:用不同的名字访问同一个变量内容cow机制遍历时的引用处理unset只会取消引用,不会销毁内存空间php中对象默认是引用传递,若需要复制,则需要使用clone2.常量及数据类型define,const;php5.6以用const定义常量不支持表达式;7种false情况:0,0.0,'','0',[],null,false;精度丢失;获取客户端,服务端ip;与app交互$
  • 从0到1学PHP(一):PHP 基础入门:开启后端开发之旅
    目录一、PHP简介与发展历程1.1PHP定义与特点1.2在后端开发中的地位1.3发展阶段及重要版本更新二、PHP开发环境搭建2.1Windows系统下搭建步骤2.2Mac系统下搭建方法及常用工具2.3适合初学者的集成开发环境三、第一个PHP程序3.1编写"HelloWorld"程序3.2程序基本结构和执行过程3.3PHP代码的嵌入方式(在HTML中)一、PHP简介与发展历程1.1PHP定义与特点P
  • Ubuntu lamp 会飞的灰大狼 linuxubuntu
    Ubuntulamp前言在Ubuntu安装lamp架构我们了解到lamp是完整的架构我们前面了解到了集合了Linux系统apacheMySQL和PHP语言的完整架构我们前面说了Centos7中编译安装lamp那么我们去说一下在Ubuntu中安装‍‍安装apache2‍apt直接安装apache2apt-yinstallapache2‍启动apache2systemctlstartapache2#测
  • 网络安全第14集 不灭锦鲤 web安全安全
    前言:小迪安全14集,这集重点内容:0、什么是js渗透测试?在javascript中也存在变量和函数,存在可控变量和函数就有可能存在在漏洞,js开发的web应用和php、java开发的区别是,js能看得到的源代码,php看不到,但是风险就是未授权访问、配置信息泄露(加密算法、key秘钥等),源代码看得到,存在更多的url泄露,从而可能会出现未授权访问,从url,前提:web应用可以采用前端语言或后
  • 常见的Bug管理工具有哪些?(如JIRA、Bugzilla、禅道等) 海姐软件测试 缺陷管理bugjira
    一、主流Bug管理工具分类及特点1.商业/企业级工具JIRA(Atlassian)特点:高度可定制,支持敏捷开发,集成CI/CD(如Jenkins)、Confluence等。适用场景:中大型团队,需复杂工作流和扩展生态。费用:按用户数收费,提供云版和本地部署。MantisBT特点:开源但支持商业服务,轻量级,适合中小团队。亮点:支持邮件通知、自定义字段。部署:需自建服务器(PHP+MySQL)。T
  • TP5中CURD那点事儿(五) 铁匠简记
    模型关联一般说来模型关系包括一对一HAS_ONEBELONG_TO一对多HAS_MANYBELONG_TO多对多BELONGS_TO_MANY一对多一用户->多条评论Model层User模型Comment模型对应两张表名User.php中创建一个publiccomm()方法publicfunctioncomm(){//这是一个关系模型return$this->hasMany('Comment','
  • 开源TTS vanloswang 综合TTS
    Ekhohttp://sourceforge.net/projects/e-guidedog/files/Ekho/http://www.eguidedog.net/ekho.phpflitehttp://www.speech.cs.cmu.edu/flite/
  • PHP框架详解 - symfony框架 FLK_9090 phpsymfonyandroid
    引言随着互联网技术的迅猛发展,Web应用程序的复杂性也在逐年增加。为了应对这种复杂性,开发者们需要更加高效、灵活的工具来简化开发流程、提高代码质量和维护性。在众多PHP框架中,Symfony凭借其模块化设计、高性能和丰富的文档支持,成为了众多开发者的首选。Symfony框架由法国公司SensioLabs开发并于2005年首次发布。它的设计哲学是为开发者提供一套高效且灵活的工具,帮助他们快速构建复杂
  • 博后 来自吐槽星
    德州TheUniversityofTexasMDAndersonCancerCenterhttps://bbs.pku.edu.cn/v2/post-read.php?bid=41&threadid=16325339纽约MemorialSloanKetteringCancerCenterhttp://www.miccai.org/jobs-posting/memorial-sloan-ketter
  • JetBrains 2025 全家桶 IDEA、WebStorm、DataSpell、DataGrip、Pycharm、CLion、Rider、PhpStorm、GoLand
    原文地址:JetBrains2025全家桶11合1含IDEA、PyCharm、DataGrip、WebStrom、GoLand、CLion、PhpStorm、DataSpell等JetBrains2025全家桶11合1包含:IDEA、WebStorm、DataSpell、DataGrip、Pycharm、RustRover、CLion、Rider、PhpStorm、RubyMine、GoLand。
  • kh dksl.php,php中取得URL的根域名的代码 克勒kk khdksl.php
    php中取得URL的根域名的代码发布于2014-12-1310:14:08|121次阅读|评论:0|来源:网友投递PHP开源脚本语言PHP(外文名:HypertextPreprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,入门门槛较低,易于学习,使用广泛,主要适用于Web开发领域。PHP的文件后缀名为php。本文为大家讲解的是php
  • SMTPman,wp mail smtp轻松配置的连接指南
    SMTPman,wpmailsmtp轻松配置的连接指南很多站长会遇到默认发信失败、邮件被当垃圾邮件等问题,此时SMTPman,wpmailsmtp提供了稳定、安全的SMTP解决方案。选择SMTPman,wpmailsmtp,你将获得更高的邮件投递率和管理效率,让网站通讯变得更可靠。功能优势使用SMTPman,wpmailsmtp可以显著提升邮件发送成功率,因为默认的PHP邮件函数经常会被邮箱服务器
  • SMTPman,php smtp发送邮件配置教程解析! tomcsdn31 SMTP邮件服务器邮件营销邮件群发营销邮件邮件接口SMTP服务器
    SMTPman,phpsmtp发送邮件配置教程解析!不论是用户注册验证,还是系统通知,SMTPman,phpsmtp发送邮件都能保证邮件稳定送达。选择SMTPman,phpsmtp发送邮件的方式,可以有效提高送达率,且SMTPman,phpsmtp发送邮件配置灵活,适合各种环境。配置参数要成功实现SMTPman,phpsmtp发送邮件,必须配置正确的服务器参数。SMTPman,phpsmtp发送邮
  • 防伪溯源一体化管理系统解决方案 春城一个人的莎士比亚 网站小程序软件定制开发防伪溯源防伪溯源小程序防伪溯源解决方案防伪溯源方法防伪溯源软件防伪溯源一物一码
    防伪溯源一体化管理系统一款基于FA+ThinkPHP和Uniapp进行开发的多平台(微信小程序、H5网页)溯源、防伪、管理一体化独立系统,拥有强大的防伪码和溯源码双码生成功能(内置多种生成规则)、批量大量导出防伪和溯源码码数据、支持代理商管理端(团队管理、采购,邀请代理商、出库等功能)、支持招商经理管理端(可管理代理商团队,邀请代理商,数据统计,采购订单统计),支持出厂员端(出库、入库)、文章资讯
  • 宝塔开放php openssl,[教程]Centos宝塔面板升级openssl增强nginxSSL安全性,openssl开启Http/2,Centos升级openssl... weixin_39956353 宝塔开放phpopenssl
    由于本站是采用的Centos7+宝塔面板搭建的LNMP环境,但是Centos7默认的openssl版本又太低,根据“漏洞参考这里:https://www.trustasia.com/OpenSSL-CVE-2016-2107-Padding-Oracle”查看这篇文章发现openssl低版本已经有一堆漏洞了,所以就萌生了升级openssl版本的想法。配置完后如图:openssl版本低会导致无论你怎
  • 探索PHP中的六边形架构:代码实践与设计哲学 脑叔 六边形架构PHP领域服务依赖规则UseCase对象
    探索PHP中的六边形架构:代码实践与设计哲学背景简介本文基于书籍《AppendixA:HexagonalArchitecturewithPHP》的第43章内容,探讨了在PHP中实现六边形架构的实践方法和背后的设计哲学。六边形架构作为一种软件设计模式,旨在帮助开发者创建易于编写、测试和维护的应用程序。六边形架构的实践在软件开发中,业务规则与基础设施之间应该有清晰的分界。六边形架构通过端口和适配器的概
  • 【全开源】防伪溯源一体化管理系统源码(FastAdmin+ThinkPHP和Uniapp) 现任明教教主~ uni-app微信小程序
    一款基于FastAdmin+ThinkPHP和Uniapp进行开发的多平台(微信小程序、H5网页)溯源、防伪、管理一体化独立系统,拥有强大的防伪码和溯源码双码生成功能(内置多种生成规则)、批量大量导出防伪和溯源码码数据、支持代理商管理端(团队管理、采购,邀请代理商、出库等功能)、支持招商经理管理端(可管理代理商团队,邀请代理商,数据统计,采购订单统计),支持出厂员端(出库、入库)、文章资讯、自定义
  • 【PHP开发900个实用技巧】779.PHP应用分层:告别面条代码的“结构化思维” 精通代码大仙 PHP开发900个实用技巧phpandroid开发语言程序员创富
    【颠覆你的代码习惯】779招PHP分层秘籍:从"意大利面条"到"千层蛋糕"的华丽蜕变——结构化思维让你代码清爽如风!779.PHP应用分层:告别面条代码的'结构化思维'表现层:直面用户的'门面担当'业务层:核心逻辑的'指挥官'数据访问层:数据库的'翻译官'工具层:重复劳动的'终结者'痛点分析:用户交互和业务纠缠?解决:剥离HTML模板引擎痛点分析:业务逻辑到处复制?解决:封装可复用的Service
  • 【PHP开发900个实用技巧】767.模板方法模式(Template Method):PHP算法骨架定义的“行为蓝图” 精通代码大仙 PHP开发900个实用技巧php装饰器模式android程序员创富
    一招破解"复制粘贴炼狱"!模板方法模式让你在PHP中定义算法骨架,代码复用率飙升200%——这才是优雅开发的核心密码!PHP模板方法模式行为蓝图设计1.是什么?算法骨架初体验重复代码困境模式定义解析2.怎么做?实现步骤解析抽象类搭建钩子方法妙用3.实战:框架应用案例Laravel示例支付流程设计4.陷阱警报过度继承灾难违反里氏替换5.高级进化论策略模式组合回调函数变体目录:是什么?算法骨架初体验怎
  • 【PHP开发900个实用技巧】765.代理模式(Proxy):PHP控制对象访问的“智能门卫” 精通代码大仙 PHP开发900个实用技巧php装饰器模式android程序员创富
    PHP访问控制的“智能管家”:揭秘代理模式如何让对象访问更安全、更高效本文深度剖析PHP代理模式的实战技巧,直击对象访问中的3大痛点,通过真实代码案例教你打造轻量级“访问门卫”,解决性能损耗、权限失控、代码臃肿难题。掌握这招,让你的PHP对象像VIP一样拥有专属管家!代理模式(Proxy)”智能门卫1.代理模式是什么2.为啥需要看门人?3.PHP实战三剑客4.典型场景避坑指南结构:代理器+本体访问
  • 【最新版】防伪溯源一体化管理系统+uniapp前端+搭建教程 fakaifa fakaifa精品源码uni-app前端小程序phpcrmeb防伪溯源一体化防伪溯源系统
    一.介绍防伪溯源一体化管理系统基于ThinkPHP和Uniapp进行开发的多平台(微信小程序、H5网页)溯源、防伪、管理一体化独立系统,拥有强大的防伪码和溯源码双码生成功能(内置多种生成规则)、批量大量导出防伪和溯源码码数据、支持代理商管理端(团队管理、采购,邀请代理商、出库等功能)、支持招商经理管理端(可管理代理商团队,邀请代理商,数据统计,采购订单统计),支持出厂员端(出库、入库)、文章资讯、
  • 【PHP开发900个实用技巧】766.命令模式(Command):PHP请求封装的“行为胶囊” 精通代码大仙 PHP开发900个实用技巧php装饰器模式android程序员创富
    封请求为命令,藏万物于胶囊!行为解耦的艺术让PHP开发告别千行if-else的黑暗时代,构建可逆可扩展的弹性系统。命令模式:行为胶囊设计1.什么是行为胶囊?2.PHP四大组件解析3.实战解耦案例4.为何值得封装?5.经典应用场景目录:什么是行为胶囊?——把请求变成对象的神奇魔法PHP四大组件解析——Invoker/Command/Receiver/Client四角关系实战解耦案例——订单系统如何告
  • 如何入门搭建Laravel框架(教程)
    随着互联网的发展,web开发的需求日益增长。在web开发领域,php语言一直扮演着重要的角色,而laravel就是php语言下一个备受欢迎的web开发框架。在本文中,我们将介绍如何入门搭建laravel框架。一、Laravel介绍Laravel是一个开源的PHPWeb框架,由TaylorOtwell在2011年创建。Laravel框架是基于MVC模式构建的,它提供了一系列灵活的工具和组件,能够帮助
  • PHP框架之Laravel框架
    Laravel框架详解Laravel,作为一款广受欢迎的PHPWeb开发框架,以其优雅、简洁的语法和强大的功能特性,赢得了全球众多开发者的青睐。下面,我们将从Laravel的特点、应用案例以及具体的框架使用等方面进行详细解析。一、Laravel框架的特点优雅的语法Laravel框架采用简洁、优雅的语法,使得开发者能够编写出易于阅读和维护的代码。例如,通过EloquentORM,开发者可以方便地进行
  • LeetCode[位运算] - #137 Single Number II Cwind javaAlgorithmLeetCode题解位运算
    原题链接:#137 Single Number II  要求: 给定一个整型数组,其中除了一个元素之外,每个元素都出现三次。找出这个元素 注意:算法的时间复杂度应为O(n),最好不使用额外的内存空间   难度:中等   分析: 与#136类似,都是考察位运算。不过出现两次的可以使用异或运算的特性 n XOR n = 0, n XOR 0 = n,即某一
  • 《JavaScript语言精粹》笔记 aijuans JavaScript
    0、JavaScript的简单数据类型包括数字、字符创、布尔值(true/false)、null和undefined值,其它值都是对象。 1、JavaScript只有一个数字类型,它在内部被表示为64位的浮点数。没有分离出整数,所以1和1.0的值相同。 2、NaN是一个数值,表示一个不能产生正常结果的运算结果。NaN不等于任何值,包括它本身。可以用函数isNaN(number)检测NaN,但是
  • 你应该更新的Java知识之常用程序库 Kai_Ge java
    在很多人眼中,Java 已经是一门垂垂老矣的语言,但并不妨碍 Java 世界依然在前进。如果你曾离开 Java,云游于其它世界,或是每日只在遗留代码中挣扎,或许是时候抬起头,看看老 Java 中的新东西。 Guava Guava[gwɑ:və],一句话,只要你做Java项目,就应该用Guava(Github)。 guava 是 Google 出品的一套 Java 核心库,在我看来,它甚至应该
  • HttpClient 120153216 httpclient
    /** * 可以传对象的请求转发,对象已流形式放入HTTP中 */ public static Object doPost(Map<String,Object> parmMap,String url) { Object object = null; HttpClient hc = new HttpClient(); String fullURL
  • Django model字段类型清单 2002wmj django
    Django 通过 models 实现数据库的创建、修改、删除等操作,本文为模型中一般常用的类型的清单,便于查询和使用: AutoField:一个自动递增的整型字段,添加记录时它会自动增长。你通常不需要直接使用这个字段;如果你不指定主键的话,系统会自动添加一个主键字段到你的model。(参阅自动主键字段) BooleanField:布尔字段,管理工具里会自动将其描述为checkbox。 Cha
  • 在SQLSERVER中查找消耗CPU最多的SQL 357029540 SQL Server
    返回消耗CPU数目最多的10条语句 SELECT TOP 10    total_worker_time/execution_count AS avg_cpu_cost, plan_handle,    execution_count,    (SELECT SUBSTRING(text, statement_start_of
  • Myeclipse项目无法部署,Undefined exploded archive location 7454103 eclipseMyEclipse
    做个备忘! 错误信息为:       Undefined exploded archive location 原因:           在工程转移过程中,导致工程的配置文件出错; 解决方法:    
  • GMT时间格式转换 adminjun GMT时间转换
    普通的时间转换问题我这里就不再罗嗦了,我想大家应该都会那种低级的转换问题吧,现在我向大家总结一下如何转换GMT时间格式,这种格式的转换方法网上还不是很多,所以有必要总结一下,也算给有需要的朋友一个小小的帮助啦。 1、可以使用 SimpleDateFormat SimpleDateFormat    EEE-三位星期 d-天 MMM-月 yyyy-四位年
  • Oracle数据库新装连接串问题 aijuans oracle数据库
    割接新装了数据库,客户端登陆无问题,apache/cgi-bin程序有问题,sqlnet.log日志如下: Fatal NI connect error 12170.   VERSION INFORMATION:         TNS for Linux: Version 10.2.0.4.0 - Product
  • 回顾java数组复制 ayaoxinchao java数组
    在写这篇文章之前,也看了一些别人写的,基本上都是大同小异。文章是对java数组复制基础知识的回顾,算是作为学习笔记,供以后自己翻阅。首先,简单想一下这个问题:为什么要复制数组?我的个人理解:在我们在利用一个数组时,在每一次使用,我们都希望它的值是初始值。这时我们就要对数组进行复制,以达到原始数组值的安全性。java数组复制大致分为3种方式:①for循环方式 ②clone方式 ③arrayCopy方
  • java web会话监听并使用spring注入 bewithme Java Web
            在java web应用中,当你想在建立会话或移除会话时,让系统做某些事情,比如说,统计在线用户,每当有用户登录时,或退出时,那么可以用下面这个监听器来监听。        import java.util.ArrayList; import java.ut
  • NoSQL数据库之Redis数据库管理(Redis的常用命令及高级应用) bijian1013 redis数据库NoSQL
    一 .Redis常用命令         Redis提供了丰富的命令对数据库和各种数据库类型进行操作,这些命令可以在Linux终端使用。         a.键值相关命令         b.服务器相关命令 1.键值相关命令       &
  • java枚举序列化问题 bingyingao java枚举序列化
    对象在网络中传输离不开序列化和反序列化。而如果序列化的对象中有枚举值就要特别注意一些发布兼容问题: 1.加一个枚举值 新机器代码读分布式缓存中老对象,没有问题,不会抛异常。 老机器代码读分布式缓存中新对像,反序列化会中断,所以在所有机器发布完成之前要避免出现新对象,或者提前让老机器拥有新增枚举的jar。 2.删一个枚举值 新机器代码读分布式缓存中老对象,反序列
  • 【Spark七十八】Spark Kyro序列化 bit1129 spark
    当使用SparkContext的saveAsObjectFile方法将对象序列化到文件,以及通过objectFile方法将对象从文件反序列出来的时候,Spark默认使用Java的序列化以及反序列化机制,通常情况下,这种序列化机制是很低效的,Spark支持使用Kyro作为对象的序列化和反序列化机制,序列化的速度比java更快,但是使用Kyro时要注意,Kyro目前还是有些bug。 Spark
  • Hybridizing OO and Functional Design bookjovi erlanghaskell
      推荐博文: Tell Above, and Ask Below - Hybridizing OO and Functional Design 文章中把OO和FP讲的深入透彻,里面把smalltalk和haskell作为典型的两种编程范式代表语言,此点本人极为同意,smalltalk可以说是最能体现OO设计的面向对象语言,smalltalk的作者Alan kay也是OO的最早先驱,
  • Java-Collections Framework学习与总结-HashMap BrokenDreams Collections
            开发中常常会用到这样一种数据结构,根据一个关键字,找到所需的信息。这个过程有点像查字典,拿到一个key,去字典表中查找对应的value。Java1.0版本提供了这样的类java.util.Dictionary(抽象类),基本上支持字典表的操作。后来引入了Map接口,更好的描述的这种数据结构。  &nb
  • 读《研磨设计模式》-代码笔记-职责链模式-Chain Of Responsibility bylijinnan java设计模式
    声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ /** * 业务逻辑:项目经理只能处理500以下的费用申请,部门经理是1000,总经理不设限。简单起见,只同意“Tom”的申请 * bylijinnan */ abstract class Handler { /*
  • Android中启动外部程序 cherishLC android
    1、启动外部程序 引用自: http://blog.csdn.net/linxcool/article/details/7692374 //方法一 Intent intent=new Intent(); //包名 包名+类名(全路径) intent.setClassName("com.linxcool", "com.linxcool.PlaneActi
  • summary_keep_rate coollyj SUM
    BEGIN /*DECLARE minDate varchar(20) ; DECLARE maxDate varchar(20) ;*/ DECLARE stkDate varchar(20) ; DECLARE done int default -1; /* 游标中 注册服务器地址 */ DE
  • hadoop hdfs 添加数据目录出错 daizj hadoophdfs扩容
    由于原来配置的hadoop data目录快要用满了,故准备修改配置文件增加数据目录,以便扩容,但由于疏忽,把core-site.xml, hdfs-site.xml配置文件dfs.datanode.data.dir 配置项增加了配置目录,但未创建实际目录,重启datanode服务时,报如下错误: 2014-11-18 08:51:39,128 WARN org.apache.hadoop.h
  • grep 目录级联查找 dongwei_6688 grep
           在Mac或者Linux下使用grep进行文件内容查找时,如果给定的目标搜索路径是当前目录,那么它默认只搜索当前目录下的文件,而不会搜索其下面子目录中的文件内容,如果想级联搜索下级目录,需要使用一个“-r”参数: grep -n -r "GET" .   上面的命令将会找出当前目录“.”及当前目录中所有下级目录
  • yii 修改模块使用的布局文件 dcj3sjt126com yiilayouts
    方法一:yii模块默认使用系统当前的主题布局文件,如果在主配置文件中配置了主题比如: 'theme'=>'mythm', 那么yii的模块就使用 protected/themes/mythm/views/layouts 下的布局文件; 如果未配置主题,那么 yii的模块就使用  protected/views/layouts 下的布局文件, 总之默认不是使用自身目录 pr
  • 设计模式之单例模式 come_for_dream 设计模式单例模式懒汉式饿汉式双重检验锁失败无序写入
                    今天该来的面试还没来,这个店估计不会来电话了,安静下来写写博客也不错,没事翻了翻小易哥的博客甚至与大牛们之间的差距,基础知识不扎实建起来的楼再高也只能是危楼罢了,陈下心回归基础把以前学过的东西总结一下。   *********************************
  • 8、数组 豆豆咖啡 二维数组数组一维数组
      一、概念       数组是同一种类型数据的集合。其实数组就是一个容器。   二、好处       可以自动给数组中的元素从0开始编号,方便操作这些元素   三、格式   //一维数组 1,元素类型[] 变量名 = new 元素类型[元素的个数] int[] arr =
  • Decode Ways hcx2013 decode
    A message containing letters from A-Z is being encoded to numbers using the following mapping: 'A' -> 1 'B' -> 2 ... 'Z' -> 26 Given an encoded message containing digits, det
  • Spring4.1新特性——异步调度和事件机制的异常处理 jinnianshilongnian spring 4.1
    目录 Spring4.1新特性——综述 Spring4.1新特性——Spring核心部分及其他 Spring4.1新特性——Spring缓存框架增强 Spring4.1新特性——异步调用和事件机制的异常处理 Spring4.1新特性——数据库集成测试脚本初始化 Spring4.1新特性——Spring MVC增强 Spring4.1新特性——页面自动化测试框架Spring MVC T
  • squid3(高命中率)缓存服务器配置 liyonghui160com
        系统:centos 5.x   需要的软件:squid-3.0.STABLE25.tar.gz 1.下载squid wget http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE25.tar.gz tar zxf squid-3.0.STABLE25.tar.gz &&
  • 避免Java应用中NullPointerException的技巧和最佳实践 pda158 java
    1) 从已知的String对象中调用equals()和equalsIgnoreCase()方法,而非未知对象。   总是从已知的非空String对象中调用equals()方法。因为equals()方法是对称的,调用a.equals(b)和调用b.equals(a)是完全相同的,这也是为什么程序员对于对象a和b这么不上心。如果调用者是空指针,这种调用可能导致一个空指针异常 Object unk
  • 如何在Swift语言中创建http请求 shoothao httpswift
    概述:本文通过实例从同步和异步两种方式上回答了”如何在Swift语言中创建http请求“的问题。 如果你对Objective-C比较了解的话,对于如何创建http请求你一定驾轻就熟了,而新语言Swift与其相比只有语法上的区别。但是,对才接触到这个崭新平台的初学者来说,他们仍然想知道“如何在Swift语言中创建http请求?”。 在这里,我将作出一些建议来回答上述问题。常见的
  • Spring事务的传播方式 uule spring事务
    传播方式:        新建事务       required       required_new   - 挂起当前         非事务方式运行       supports   &nbs
按字母分类: ABCDEFGHIJKLMNOPQRSTUVWXYZ其他
首页 - 关于我们 - 站内搜索 - Sitemap - 侵权投诉
版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved.