codecamp

致框架贡献者:加入PhalApi开源指南

人们对他们的工作以及他们完成工作的方法很感兴趣,并给它取了一个现在大家众所周知的称呼:集市。
而且当遇到那些开发、维护大量程序库和应用的传统组织所面临的挑战时,它将显得更加自由和狂热。
-- 《架构之美》

5.8.1 感谢加入!

首先,非常感谢您的加入!

(此处应该有掌声~~~)

其次,对于加入后,可以做的事情有很多,下面是其中一部分。你可以选择或者new一个idea出来贡献。

5.8.2 开发PhalApi核心框架 - PhalApi

此部分为PhalApi核心的框架代码的开发和维护,对于此部分,我们要求会高一点,因为这块将需要为每个即将使用PhalApi或者正在使用PhalApi开发的项目负责任。此外,也要考虑到框架的维护和学习成本,以及代码质量(请原谅程序员那一点点代码洁癖)、相关文档的编写和维护等。当然,还要面对各种用户的咨询、各样问题的应对等。

(1)基本的要求

所以,对于此块,建议是资源PHP或者有经验的同学来加入。下面是一些基本的要求:

  • 熟悉Linux系统的基本操作
  • 有丰富的PHP开发经验
  • 架构师或对框架有浓厚的兴趣
  • 推荐有使用PhalApi实际项目的开发经验

(2)简单的引导

如果你决定加入核心框架的开发,以下则是一些简单的引导。

  • 1、下载安装PhalApi
  • 2、翻看WIKI,并可根据文档的说明在本地试运行
  • 3、浏览框架源代码和在线类参考手册
  • 4、更多交流与启程

此过程中,有任何疑问,欢迎随时和我们交流。

5.8.3 开源扩展类库 - PhalApi Library

此部分开放的用户群体包括个人、项目团队、或者其他同学,即只需要扩展是未重复且有实际使用意义的,都可以来分享给大家。因此此块要求比较宽松,不需要像PhalApi核心框架那样和我们有紧密的联系。

如果你决定或者想对此块扩展类库开源,可以:

  • 1、下载安装PhalApi
  • 2、下载安装一个你喜欢的扩展类库
  • 3、查看扩展类型的WIKI
  • 4、开源你的扩展类库

此过程中,有任何疑问,也欢迎随时和我们交流。

5.8.4 基于PhalApi应用框架的开源

因为PhalApi是一个开发框架,而不是一个应用框架,所以你可以在它的基础上再作应用框架的研发。如果可以,我们也希望你能与大家分享你美丽动人的应用框架。

如果是此路径,你可以自己建立项目,自己维护。但请注明或保留PhalApi本来已有的版权信息,谢谢。

5.8.5 不用写代码的开源工作

上面都是针对开发同学的开源选择,当然,对于萌妹子或者文艺青年,我们也有相关的工作适合你。比如:运营、开源团队的建设等等。

5.8.6 捐赠

最后,但不是最重要的。

你也可以通过捐赠来支持我们,从而为开源工作提供强大而有力的保障。

5.8.7 最真实并具有活力的开源参与

据说,人类一切的智慧都蕴藏在这两个词之中:等待和希望。

我们之所以选择投身开源PhalApi和为之不断努力,同时也是充满活力的,是因为我们看到了国内外在移动端App开发下对后台接口的需求量。
虽然我们在接口开发框架上取得了一定的成果,但这仅仅限制在当前和过去。我们仍然需要不断进行创新、完善,以满足更为宽阔的业务开发场景。

明显地,这绝对不是一个人能做得到的。
这依赖于大家对开源框架的认可,更依赖于对开源社区的参考和反馈。

更为真实的开源参考,我觉得不是一时的心血来潮,而是你在使用PhalApi进行实际项目开发时对所遇到问题得到新的解决方案后的分享。
因为,这样后,你对已发现的问题有了更为深入的理解,得出的解决方案也是经过你深思熟虑、多次验证并通过测试、实战而来的。可以说,你已经是这个领域的专家,自然而然大家也更为信任你这套方案。
即使不是最好的,起码也是当前最优的。

简单来说:

  • 1、采用PhalApi或者其他框架进行接口开发
  • 2、对遇到的问题,设计出最优的解决方案并试验之
  • 3、反馈、分享和开源
  • 4、持续维护

希望,若干年后,我们仍能看到一个备具生气、充满活力的PhalApi框架,和更多的衍生品。
也希望,有朝一日,我们能在国际的范围内看到广为推崇的开源框架中,也有来自中国的。

更新日志
附录1:接口文档参考模板
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

八、视频教程

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }