php - 使用 neooxygen php neoclient 无需依赖

标签 php neo4j cypher neoxygen

我们如何在没有任何框架的情况下使用neoclient。因为我们没有使用laravelsymphony,甚至我们没有使用类似这些框架。我们的后端是纯核心PHP编写的。 简而言之,我的问题是,如果我们没有将任何框架用于核心目的,那么我们为什么要使用它们来仅使用 dbms 。

当我计算供应商文件夹的大小时,它是102 MB。所以单个请求会消耗掉很大一部分内存。 我的猜测是,在使用 Neo-client 时,供应商文件夹中包含的所有文件都会被加载。所以请纠正我,如果 neoclient 可以单独使用,我会很高兴使用它,但请必须告诉我使用没有依赖项的 Neo-Client 会有什么缺点。

最佳答案

我是 NeoClient 的创建者和维护者。

简单地回答您有关依赖项的问题:

  1. 它使用一些 Symfony 依赖项来实现真正灵活的配置管理,提供在没有代理的集群中工作的可能性,以及具有内置扩展的可能性。

  2. 这并不意味着它与任何框架紧密相关。

  3. 在开发模式下,客户端的提升肯定不会优化,自述文件中详细介绍了如何在设置过程中使用单个标志优化客户端。性能真的非常好,这是基准测试的结果:

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/

相关文章:

javascript - 为什么启用和禁用按钮不起作用?

node.js - 使用 neo4j JS 驱动程序的套接字挂断

database - 图数据库中的面向对象编程

neo4j - 从 cypher 中的多个特定路径查询节点

csv - Neo4j 使用 csv 创建关系

Php 将日期时间如 "2017-01-10T18:00:00.000Z"转换为标准时间

javascript - 有没有一种方法可以使用 PHP 在 HTML 正文中编写样式以*移动*它

php - Laravel Controller 中的嵌套 SQL 查询

neo4j - Neo4j版本3中的新错误。有人回答吗?

shell - Neo4j - 通过 Neo4jShell 将密码查询文件结果导出到 .csv 或 .txt 文件