V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  heguangyu5  ›  全部回复第 4 页 / 共 6 页
回复总数  101
1  2  3  4  5  6  
2022-09-30 11:03:37 +08:00
回复了 heguangyu5 创建的主题 PHP PHP 编译器 BPC 5.0 发布了
@sadfQED2 1 个人两年时间
2022-09-21 13:42:01 +08:00
回复了 heguangyu5 创建的主题 PHP PHP 编译器 BPC 可以下载试用了!
@rekulas 发邮件到 YnBjQG91cmF0cy5jb20=
2022-09-21 09:10:38 +08:00
回复了 tsingke 创建的主题 程序员 单元测试有落地效果好的团队吗?
来分享一下我们最近在做的事,这事要是没有测试保障,很难做成.

我们是做 SASS 招聘管理系统的,开发语言是 PHP,2010 年开始开发,2012 年开始引入 PHPUnit 写单元测试,2020 年做过一次统计,当时代码库有代码约 900 万行. https://zhuanlan.zhihu.com/p/150548910

然后这两年我们想做本地部署,大家知道,PHP 项目做本地部署基本就等于交出了源码.
这是我们不期望的,我们自认为自己产品做的不错,一个几十万元的本地部署项目就把源码给出去太亏了.

那怎么办呢?经过一番调研,我们打算将 PHP 转译成 C,然后编译成二进制,这就好了.
于是就有了我们的 PHP 编译器 BPC. https://github.com/bob-php-compiler/bpc-release
但是 BPC 最终转译出来的 C 代码是否等价于 PHP 呢?
单元测试此时帮了大忙.

1. php 自身及扩展是都有相对完整的测试的,就在 php 源码的 tests 目录里.所以 bpc 如果能够顶替掉 php 解释器,然后还能通过测试的话,那就是最强有力的保障了.然后在 tests 的帮助下,我们实现了 runtime 及需要的扩展. https://github.com/bob-php-compiler/bpc-php-7.2.19-tests
2. 接下来要用 bpc 把 phpunit 编译出来,有了 phpunit,就能确保编译过后的二进制的运行结果和 php 解释器的运行结果一致了. https://github.com/bob-php-compiler/bpc-phpunit.phar-4.8.36
3. 我们的项目是基于 zend framework 1 的,zf1 的单元测试也是用 phpunit 写的,编译 zf1 library,编译 zf1 tests,运行结果一致,zend 就没问题了. https://github.com/bob-php-compiler/zf1
4. 接下来就是我们自己的招聘管理系统了.同样有 phpunit 写的测试保障,只要编译出来运行测试没问题,那就是 99.99%没问题了.

在测试的保障下,现在我们虽然开发的时候用的是 php 解释器,但将来部署出去的话,整个服务器上就几个二进制文件,是没有 php 环境的,测试已经保证了转译后的 C 代码运行结果和 php 一样,这就放心交出去了.

试想如果没有单元测试保障,每一步心里都是忐忑的,还怎么做事呀.
2022-09-21 08:21:12 +08:00
回复了 limebax 创建的主题 程序员 Authing 真是一家神奇牛逼的公司!
同样的事情亲身遇到过,2 年前 Moka 就这样蹭 OurATS 的广告,只能说这些人太坏了!
2022-08-31 14:30:21 +08:00
回复了 anviod 创建的主题 Go 编程语言 [问答]软件离线授权比较稳妥的方案
看下这个 https://0xnobody.github.io/devirtualization-intro/
不要和搞逆向的斗智斗勇.

要转换思路:
1. 任何授权到最终都是一个 if 判断,搞掉这个判断授权就绕过了.
2. 不能假设别人定位不到这个 if.
3. 虽然能定位和绕过授权判断,但这需要时间,比如 10 分钟?
4. 添加足够多的授权判断.

我这边也是做 toB 的,并且是用 PHP 开发的.
为了保护源代码和搞定授权,开发了一个名为 bpc 的编译器.
bpc 在编译 php 代码的过程中,在合适的位置插入授权判断,插入数量由参数控制.
思路供参考.
https://bpc.dev
2022-07-01 10:50:57 +08:00
回复了 equationl 创建的主题 程序员 关于付费 APP 加密方式的一些疑问
@equationl 我没有实际做过破解,多问一句,如果在代码里加上几十万处 if 后,if 代码不完全一致,是有办法批量处理的吗?
2022-07-01 09:43:23 +08:00
回复了 equationl 创建的主题 程序员 关于付费 APP 加密方式的一些疑问
分享一下我的思路,关键有两点:

1. 定位到 if 判断需要一定时间
2. 要有办法在代码中加入足够多的 if 判断
2022-07-01 09:24:58 +08:00
回复了 heguangyu5 创建的主题 PHP PHP 编译器 BPC 可以下载试用了!
@ywisax 看起来 workerman 就是一个很正常的 php 程序,也许到了明年就可以了.
2022-07-01 09:14:40 +08:00
回复了 heguangyu5 创建的主题 PHP PHP 编译器 BPC 可以下载试用了!
@v23x php 官方近期不会做 aot 的

https://github.com/php/php-src/issues/8203
2022-06-08 11:41:32 +08:00
回复了 heguangyu5 创建的主题 PHP PHP 编译器 BPC 新里程碑达成: 可以编译 web 应用了!
@lp7631010 这个项目的出发点就是为了解决源码保护和软件授权问题,也就是让 php 写的软件能放心地售卖.

至于别的优势,目前体验到的就是写扩展更容易了,我是不会写 php 扩展的,但把 php 已有的扩展移植到 BPC 或者把需要的 C 库写成 BPC 扩展都很容易做.

还有一个算不上是优势,可以当作特点吧.对于 cli 项目来说,可以 static link 成一个只有很少依赖的可执行文件,比如 bob-parser 和 bob-finder,软件分发和使用更容易了.
2022-06-08 11:17:52 +08:00
回复了 heguangyu5 创建的主题 PHP PHP 编译器 BPC 新里程碑达成: 可以编译 web 应用了!
@danhahaha 等有钱有人了,就加上
2022-06-07 17:10:44 +08:00
回复了 heguangyu5 创建的主题 PHP PHP 编译器 BPC 新里程碑达成: 可以编译 web 应用了!
@keepeye
swoole compiler 和 ionCube 以及一楼在做的产品是一类的.
bpc 和 kphp(将 php 编译为 C++) peachpie(将 php 编译为 C#)是一类的.
2022-06-07 17:06:25 +08:00
回复了 heguangyu5 创建的主题 PHP PHP 编译器 BPC 新里程碑达成: 可以编译 web 应用了!
@brader 你说的 nginx+php 应该是 nginx+php-fpm,别人的 apache+php 是 apache+mod_php,确实应该没人搞套娃的 nginx+apache+php-fpm,不过应该有人用 nginx+apache+mod_php

我现在做的是 apache+mod_bpc,如果我后边也搞一个 fastcgi-bpc 的话,那就可以 nginx+fastcgi-bpc 了
2022-06-07 16:29:36 +08:00
回复了 heguangyu5 创建的主题 PHP PHP 编译器 BPC 新里程碑达成: 可以编译 web 应用了!
@microxiaoxiao 实际上代码保护是个通用的问题,不止 php,java 和 C#这类基于中间码的语言都有代码保护的需求,java 有 graalvm,C#好像也有 Native AOT.
2022-06-07 16:20:49 +08:00
回复了 heguangyu5 创建的主题 PHP PHP 编译器 BPC 新里程碑达成: 可以编译 web 应用了!
@brader nginx 的后边是 php-fpm 或者 apache,你不是搞 php 的吧
2022-06-07 14:14:04 +08:00
回复了 heguangyu5 创建的主题 PHP PHP 编译器 BPC 新里程碑达成: 可以编译 web 应用了!
@CodeCodeStudy 出发点是为了保护源码,但做下来之后,发现还能解决一些其它问题,比如软件授权,扩展开发等.
2022-06-07 14:09:13 +08:00
回复了 heguangyu5 创建的主题 PHP PHP 编译器 BPC 新里程碑达成: 可以编译 web 应用了!
@rekulas 我想你肯定知道 opcode 是可以反编译的,基于 opcode 就要做好和相关从业人员斗智斗勇的准备.我们没那个精力,所以没走那条路.
2022-02-26 16:49:08 +08:00
回复了 heguangyu5 创建的主题 PHP PHP 编译器 BPC 的第一个成功案例来了!
@littleylv 欢迎你在我支持了 namespace traits 后再来关注

不管怎么说,能按自己的喜好做事,真的很棒! 这得感谢云招 OurATS 宽松自由的环境和给力的同事!
2022-02-25 18:51:24 +08:00
回复了 heguangyu5 创建的主题 PHP PHP 编译器 BPC 的第一个成功案例来了!
@xumng123 万里长城第一步,你看微软做的 peachpie strlen 返回值还不对呢,俄罗斯做的 kphp 还不支持 calling by name 呢.
2022-02-25 16:17:48 +08:00
回复了 heguangyu5 创建的主题 PHP PHP 编译器 BPC 的第一个成功案例来了!
@mrgeneral

1. namespace 个人不喜欢,用的也不多,真的用到的地方可以调整成不用 namespace 的,个人更偏好 A_B_C 这种全名的.
2. 匿名函数是支持的,但是不支持 use 语法.这个是因为没花时间去看到底该怎么支持.
3. generators,traits 我们自己的项目没有用到.

这个项目当前还处在很早期,看实际需求,也许后边会支持这些特性.
1  2  3  4  5  6  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1295 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 20ms · UTC 17:53 · PVG 01:53 · LAX 09:53 · JFK 12:53
Developed with CodeLauncher
♥ Do have faith in what you're doing.