利用PHPStorm如何开发Laravel应用详解


Posted in PHP onAugust 30, 2017

前言

相信有很多PHP程序员使用 [laravel] 创建他们的应用程序。[laravel] 是一个免费开源的PHP web应用程序框架。它基于多个Symfony 组件,提供了一个开发框架,包括authentication, routing, sessions, caching 等模块.

去年夏天, 我们介绍了 支持Blade 。blade 是Laravel的模板语言, 对艺术家友好,这个Laravel程序员的命令行工具, 可以在PhpStorm中工作. 使用 Laravel 插件 和 Laravel IDE 帮助器, 我们可以进一步扩展PhpStorm对Laravel应用的支持。下面让我们看怎么做!

安装Laravel IDE 助手

官方方式

首先确认 Composer 在我们的项目中是可用的, 我们可以使用 Composer | Add dependency… 右键菜单安装 [Laravel 5 IDE Helper Generator] 到我们的项目. 搜索 barryvdh/laravel-ide-helper,并且点击Install下载并添加到项目.

[译注]自助方式

因为我们是在项目中使用, 所以我们在项目中添加这个功能, 在 composer.json 中添加 require-dev 分支
laravel 4.* , 这里的版本应该填写 1.*

"require-dev": {
  // ...
  "barryvdh/laravel-ide-helper": "2.*"
  // ...
},

然后使用命令 composer update -vvv 来更新程序包

注册 'Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider' 服务到我们的应用, 即写入到 config/app.php 中的 provider中 , 这样在 artisan list 中便存在了ide-helper的命令, 运行 artisan ide-helper:generate, PhpStorm就会有代码完成功能,并且有Laravel的语法高亮.

PhpStorm中的Laravel插件

为了进一步提升我们的Laravel体验,我们也可以安装Laravel插件. 在 Settings (Preferences) | Plugins, 点击 Browse repositories… 按钮并搜索Laravel. Install plugin 按钮会下载并安装插件到IDE.

利用PHPStorm如何开发Laravel应用详解

重启IDE 并启用插件( Settings (Preferences) | Other Settings | Laravel Plugin | Enable Plugin for this Project). PhpStorm知道Laravel的界面做什么, 并且提供(controllers,views, routes, configuration, translations、等)的代码完成功能!

当然不只是代码自动完成,使用 Ctrl+Click (CMD+Click Mac OS X) 或者 Go To Declaration(转到定义) (Ctrl+B / CMD+B), PhpStorm 将会导航到那里, 比如配置项的声明。

关于使用 Blade 模板,Laravel 插件也可以提高体验, 比如:@section 指令的自动完成.

想了解更多吗? 查看我们的 Laravel教程,这里包含了 PhpStorm 为 Laravel 开发准备的全部东西, 包括代码自动完成,导航,自动代码检查,命令行工具支持,调试和单元测试!

还可以在composer.json的post-update-cmd中加入命令保证 helper在每次update的时候都会更新,如下:

"post-update-cmd": [
  "php artisan clear-compiled",
  "php artisan ide-helper:generate",
  "php artisan optimize"
 ],

另外,如果你的model是extend的Eloquent,这个插件还可以给项目中的model添加phpDoc,直接显示字段名,便于阅读,用法

php artisan ide-helper:models User

需要修改composer.json,在 require-dev段添加

"require-dev": {  
  "doctrine/dbal": "~2.3"
},

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

参考文章:

使用 PHPStorm 开发 Laravel 应用

Laravel Development using PhpStorm

PHP 相关文章推荐
超级实用的7个PHP代码片段分享
Jan 05 PHP
discuz免激活同步登入代码修改方法(discuz同步登录)
Dec 24 PHP
ASP和PHP实现生成网站快捷方式并下载到桌面的方法
May 08 PHP
Yii中render和renderPartial的区别
Sep 03 PHP
PHP图片库imagemagick安装方法
Sep 23 PHP
php导入大量数据到mysql性能优化技巧
Dec 29 PHP
php自定义加密与解密程序实例
Dec 31 PHP
PHP Warning: Module 'modulename' already loaded in问题解决办法
Mar 16 PHP
PHP实现批量修改文件后缀名的方法
Jul 30 PHP
PHP获取星期几的常用方法小结
Dec 18 PHP
PHP递归算法的简单实例
Feb 28 PHP
一文搞懂PHP中的抽象类和接口
May 25 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
Aug 29 #PHP
PHP单例模式与工厂模式详解
Aug 29 #PHP
PHP迭代与递归实现无限级分类
Aug 28 #PHP
yii2中LinkPager增加总页数和总记录数的实例
Aug 28 #PHP
PHP大文件分割上传 PHP分片上传
Aug 28 #PHP
thinkphp ajaxfileupload实现异步上传图片的示例
Aug 28 #PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
Aug 28 #PHP
You might like
ubuntu10.04配置 nginx+php-fpm模式的详解
2013/06/03 PHP
PHP信号量基本用法实例详解
2016/02/12 PHP
yii2中LinkPager增加总页数和总记录数的实例
2017/08/28 PHP
PHP之认识(二)关于Traits的用法详解
2019/04/11 PHP
Prototype使用指南之enumerable.js
2007/01/10 Javascript
js+css使DIV始终居于屏幕中间 左下 左上 右上 右下的代码集合
2011/03/10 Javascript
js实现广告漂浮效果的小例子
2013/07/02 Javascript
Node.js模拟浏览器文件上传示例
2014/03/26 Javascript
JavaScript调用ajax获取文本文件内容实现代码
2014/03/28 Javascript
Node.js实现的简易网页抓取功能示例
2014/12/05 Javascript
JavaScript面向对象的实现方法小结
2015/04/14 Javascript
Js实现京东无延迟菜单效果实例(demo)
2017/06/02 Javascript
深入理解Vue Computed计算属性原理
2018/05/29 Javascript
Mint UI组件库CheckList使用及踩坑总结
2018/12/20 Javascript
nodejs中方法和模块用法示例
2018/12/24 NodeJs
Vue $emit()不能触发父组件方法的原因及解决
2020/07/28 Javascript
解决ant Design中this.props.form.validateFields未执行的问题
2020/10/27 Javascript
python去掉字符串中重复字符的方法
2014/02/27 Python
Python Web框架Flask中使用新浪SAE云存储实例
2015/02/08 Python
30分钟搭建Python的Flask框架并在上面编写第一个应用
2015/03/30 Python
Python使用matplotlib绘制动画的方法
2015/05/20 Python
详解python之多进程和进程池(Processing库)
2017/06/09 Python
Python使用matplotlib实现绘制自定义图形功能示例
2018/01/18 Python
Python2中文处理纪要的实现方法
2018/03/10 Python
tensorflow实现简单的卷积网络
2018/05/24 Python
详解Python发送email的三种方式
2018/10/18 Python
python ipset管理 增删白名单的方法
2019/01/14 Python
Python字符串格式化输出代码实例
2019/11/22 Python
TensorFlow固化模型的实现操作
2020/05/26 Python
pytorch中的weight-initilzation用法
2020/06/24 Python
实习护士自荐信
2014/06/21 职场文书
英语教学课后反思
2016/02/15 职场文书
《桂花雨》教学反思
2016/02/19 职场文书
nginx配置proxy_pass中url末尾带/与不带/的区别详解
2021/03/31 Servers
详解TypeScript中的类型保护
2021/04/29 Javascript
Python多线程 Queue 模块常见用法
2021/07/04 Python