请原谅Jerry这篇文章的题目有“标题党”的嫌疑。

没错,至少SAP成都研究院的部分团队如此,比如Jerry目前就职的SAP成都研究院数字创新空间。

之前Jerry的文章, 曾经提到SAP Kyma(SAP Extension Factory on SAP Cloud Platform, SAP云平台扩展工厂),是SAP C/4HANA极为重要的扩展工具。

Jerry最近在尝试一个基于Kyma的POC。

一个旅行达人伊森,每游览一个城市后喜欢写一些图文并茂的博客,并上传到社交媒体平台上。伊森同时又是一个社交媒体达人,拥有Twitter,Facebook,Instagram,YouTube等众多平台账号。伊森不得不把同一篇博客一次又一次地手动搬运到不同的平台上。终于有一天,伊森无法忍受这种无聊透顶的体力活了,找到Jerry寻求帮助。

Jerry给出了如下的解决方案:伊森以后只在一个博客系统上写文章,那就是基于PHP实现的WordPress系统。然后Jerry会把WordPress同Kyma连接起来,使得伊森在WordPress上发表的每一篇文章,都能通过Kyma自动同步到其他社交媒体平台上。

具体的技术实现,就是用PHP对WordPress做一些扩展,让WordPress能够同Kyma的Application Connector连接起来。这样每次WordPress上有"Post created(文章创建成功)"的事件抛出后, Kyma都能够监听到这个事件。然后Jerry在Kyma上编写一段代码,作为这个事件的处理函数,分别调用各大社交媒体平台的文章创建API,即可完成博客同步的任务。

从此伊森再也不用做那些浪费时间的体力活了,伊森很满意,但Jerry却有一些开发任务要做。

因为涉及到WordPress的增强,所以需要在本地搭一个WordPress的开发环境出来。

这使得Jerry从2004年大学本科开始正式编程以来,第一次有机会在项目中用到PHP,而提到“PHP是世界上最好的语言”这个梗,程序员们总忍不住会心一笑。

先看下WordPress增强之后的效果。在WordPress设置页面里,多出来一个叫做Kyma Connector的配置选项,里面可以定义同Kyma实例的连接细节。

Jerry后续会详细介绍这个通过Kyma实现的社交媒体博客同步方案的技术实现,本文只是记录Jerry在本地搭建WordPress在Eclipse中的单步调试环境的步骤——单步调试对于应用开发的重要性,每位开发人员都深有体会。对此不感兴趣的朋友们可以忽略。

首先安装WampServer集成运行环境(简称WAMP),然后把github开源的WordPress源代码拷贝到WAMP的Apache Web服务器对应的www文件夹下:

然后用Eclipse的Import->General->Existing Projects into Workspace:

注意导入时,不要选择"Copy projects into workspace":

在Eclipse里新建一个PHP执行环境,Executable path和PHP ini指向WAMP里PHP文件夹里对应的文件:

Debugger选择成XDebug:

在php.ini里维护对应的xdebug设置:

[xdebug]

zend_extension = "C:/MyApp/wamp20190709/bin/php/php7.0.10/ext/php_xdebug-2.6.1-7.0-vc14.dll"

xdebug.remote_enable = On

;启用性能检测分析

xdebug.profiler_enable = On

;启用代码自动跟踪

xdebug.auto_trace=On

xdebug.profiler_enable_trigger = On

xdebug.profiler_output_name = cachegrind.out.%t.%p

;指定性能分析文件的存放目录

xdebug.profiler_output_dir ="C:/MyApp/wamp20190709/tmp"

xdebug.show_local_vars=0

;配置端口和监听的域名

xdebug.remote_port=9000

xdebug.remote_host="localhost"

Eclipse里新建一个PHP built-in server,Runtime Environment选择成WAMP提供的PHP运行环境,端口改成和WAMP里Apache Web服务器监听的端口号一致:

一切就绪之后,Debug As->Debug on Server:

弹出PHP Debug的对话框,当然是选择Yes了:

断点触发了。

Happy Debugging!

什么?在SAP中国研究院里还需要会PHP开发?的更多相关文章

  1. 我都xxx岁了,还能继续做开发吗?

    前言 今天纯文字,阅读时间10分钟左右 最近在看一本书<大型网站技术架构:核心原理与案例分析>,可以说是非常枯燥的一本书,在开头几章讲解了网站的发展,介绍了一些架构中的常用名词.虽然有点枯 ...

  2. .Net Core ORM选择之路,哪个才适合你 通用查询类封装之Mongodb篇 Snowflake(雪花算法)的JavaScript实现 【开发记录】如何在B/S项目中使用中国天气的实时天气功能 【开发记录】微信小游戏开发入门——俄罗斯方块

    .Net Core ORM选择之路,哪个才适合你   因为老板的一句话公司项目需要迁移到.Net Core ,但是以前同事用的ORM不支持.Net Core 开发过程也遇到了各种坑,插入条数多了也特别 ...

  3. 中国十大B2C电商站点开发语言调查

    中国B2C电商站点市场占有率排名例如以下 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I ...

  4. SAP CRM WebClient UI和Hybris backoffice UI开发的相同点

    CRM WebClient和Hybris backoffice的UI开发都不需要开发人员手写原生的html代码. CRM WebClient UI 在CRM WebUI workbench里,开发人员 ...

  5. Context都没弄明白,还怎么做Android开发?

    Activity mActivity =new Activity() 作为Android开发者,不知道你有没有思考过这个问题,Activity可以new吗?Android的应用程序开发采用JAVA语言 ...

  6. Context都没弄明白,还怎么做Android开发

    转载:https://www.jianshu.com/p/94e0f9ab3f1d Activity mActivity =new Activity() 作为Android开发者,不知道你有没有思考过 ...

  7. 开源中国【面经】Java后台开发

    2021.04.09 直接正文: 开场自我介绍,说一下自己 有没有实习经历?(毕业实习) 毕业实习学了什么?(前端) 有什么大项目吗?(除了课设就是毕设) 能说一下毕设的情况吗?(做了大概,没有开始登 ...

  8. ☕【Java深层系列】「并发编程系列」深入分析和研究MappedByteBuffer的实现原理和开发指南

    前言介绍 在Java编程语言中,操作文件IO的时候,通常采用BufferedReader,BufferedInputStream等带缓冲的IO类处理大文件,不过java nio中引入了一种基于Mapp ...

  9. 企业应用架构研究系列十九:Docker开发环境

    软件行业流行这样一个说法,由于Docker 技术的成熟和该技术被广大厂商的普遍应用,成就了微服务领域的快速成长,衍生了云原生技术和公有云的进一步推广.我个人认为Dockers 技术.微服务技术.云原生 ...

随机推荐

  1. QML使用MouseArea

    1.普通使用 MouseArea { anchors.fill: parent hoverEnabled: true//为true才会触发进入信号 onClicked: { } onEntered: ...

  2. javascript中的Error对象

    在javascript中一旦代码解析或运行时发生错误,javascript引擎就会自动产生并抛出一个Error对象的实例,然后整个程序就中断在发生错误的地方. Error对象的实例有三个基本的属性: ...

  3. JS时间转换,url编码,jquery返回类型等问题

    1.当时间被转换为json格式后会被转换成 /Date(...)/ 这种格式,其中...为时间转换成妙后的一串整数 function changeDateFormat(cellval) { )); v ...

  4. Ocelot+Consul 集群搭建实践

    博客园已经有很多大神写过consul集群搭建了.大家都在玩,那我也不能托后退呢 不过自己研究下还是好的.毕竟每个人遇到的问题的不同 研究过才能说自己玩过consul,文章有部分名词解释是收集网络 Co ...

  5. 【c# 学习笔记】继承

    在c#中,一个类可以继承另外一个已有的类(密封类除外),被继承的类称为基类(或父类),继承的类称为派生类(或子类),子类将获得基类 除构造函数和析构函数以外的所有成员.此外,静态类是密封的,也不能被继 ...

  6. 同时支持Android 和 ios 投屏到电脑的软件,Support Android and ios screen shrare to PC - 希沃授课助手

    最近学校由粉笔黑板更换了智慧电子黑板,然后发现了一个好玩的软件. 感谢希沃公司的开发: 希沃授课助手,这是一款同时支持Android 和 ios 投屏和远程控制的. 效果很流畅,非常赞

  7. java基本思想

    面向对象 众所周知,面向对象编程思想是java的基本思想.java的整个体系和技术实现都是以这个思想为基础.(这个通过类和接口能看出来,后面提到) 对这个事情的认知度甚至变成了很多公司的面试标准.比如 ...

  8. MySQL“Another MySQL daemon already running with the same unix socket”的处理

    方法一: rm var/lib/mysql/mysql.sock service mysqld start 方法二: mv /var/lib/mysql/mysql.sock /var/lib/mys ...

  9. 【链接】js监听input输入框内容变化

    https://blog.csdn.net/idomyway/article/details/79078625 $("#input1").bind("input prop ...

  10. opencv根据摄像头名称获取索引值

    OpenCV的VideoCapture是一个视频读取与解码的API接口,支持各种视频格式.网络视频流.摄像头读取. 针对一般摄像头的读取,opencv为了实现跨平台读取摄像头时是使用的摄像头索引, V ...