我们如何在没有任何框架的情况下使用neoclient。因为我们没有使用laravel
或symphony
,甚至我们没有使用类似这些框架。我们的后端是纯核心PHP编写的。
简而言之,我的问题是,如果我们没有将任何框架用于核心目的,那么我们为什么要使用它们来仅使用 dbms 。
当我计算供应商文件夹的大小时,它是102 MB
。所以单个请求会消耗掉很大一部分内存。
我的猜测是,在使用 Neo-client 时,供应商文件夹中包含的所有文件都会被加载。所以请纠正我,如果 neoclient 可以单独使用,我会很高兴使用它,但请必须告诉我使用没有依赖项的 Neo-Client 会有什么缺点。
最佳答案
我是 NeoClient 的创建者和维护者。
简单地回答您有关依赖项的问题:
它使用一些 Symfony 依赖项来实现真正灵活的配置管理,提供在没有代理的集群中工作的可能性,以及具有内置扩展的可能性。
这并不意味着它与任何框架紧密相关。
在开发模式下,客户端的提升肯定不会优化,自述文件中详细介绍了如何在设置过程中使用单个标志优化客户端。性能真的非常好,这是基准测试的结果:
Benchmarking client instantation without cache, with result formatter enabled, 1000 runs Runned in 47.425533056259 seconds, using 8.5 mb memory
Benchmarking client instatation with cache enabled, 1000 runs Runned in 0.068459987640381 seconds, using 8.5 mb memory
据我所知,NeoClient 目前在 20 多家初创公司和企业中使用,并且现在由 GraphAware(我工作的公司)提供企业支持。
此外,我创建了一个 Bolt 驱动程序(neo4j 3.0 中的二进制协议(protocol))https://github.com/graphaware/neo4j-bolt-php它将在 NeoClient 中实现(这需要一些工作,因为我在创建它时并没有想到多协议(protocol))
另一方面,依赖项的数量并不意味着它将实例化所有依赖项的所有对象,Guzzle 用于其 PSR-7 支持和 Curl 抽象,如果您使用 YAML 提供配置并且所有服务都使用 YAML,则使用 YAML在惰性模式下,意味着内部使用的所有命令在调用时都会真正加载到内存中。
关于php - 使用 neooxygen php neoclient 无需依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32903712/