如果没有任何框架.Because,我们如何使用neoclient,我们不使用laravel或symphony,即使我们不使用任何东西,比如这些frameworks.Our后端都是编写的纯核心PHP。简单地说,我的问题是,如果我们没有将任何框架用于核心目的,那么我们为什么要使用它们来只使用dbms。
当我计算供应商文件夹的大小时,它是102 MB的。所以一个请求就会消耗掉很大一部分内存。我猜想,当使用Neo-client时,供应商文件夹中包含的所有文件都将被加载。所以请纠正我,如果neoclient可以单独使用,我将非常乐意使用它,但是请告诉我使用新客户端没有依赖的缺点是什么。
发布于 2015-10-02 12:30:51
我是NeoClient的创建者和维护者。
要简单地回答有关依赖关系的问题:
基准测试客户端实例化没有缓存,启用了结果格式化程序,使用8.5mb内存在47.425533056259秒内运行1000次 在启用缓存的情况下对客户端状态进行基准测试,使用8.5mb内存在0.068459987640381秒内运行1000次
NeoClient目前在我所知道的20多家初创企业和企业中使用,现在得到了GraphAware (我为之工作的公司)的企业支持。
此外,我还创建了一个博尔特驱动程序( neo4j 3.0中的二进制协议) https://github.com/graphaware/neo4j-bolt-php,它将在NeoClient中实现(这需要一些工作,因为多协议不是我在创建它时想到的)。
另一方面,依赖项的数量并不意味着它将实例化所有依赖项的所有对象,Guzzle用于PSR-7支持和Curl抽象,如果使用YAML提供配置,并且所有服务处于延迟模式,则使用YAML,这意味着调用时所有内部使用的命令都将真正加载到内存中。
发布于 2015-10-02 09:39:16
NeoClient
NeoClient只使用Symfony框架的一部分。清单:
"require": {
"php": ">= 5.5",
"guzzlehttp/guzzle": "^6.0",
"monolog/monolog": "~1.1",
"symfony/yaml": "^2.7",
"symfony/config": "^2.7",
"symfony/dependency-injection": "^2.7",
"symfony/event-dispatcher": "^2.7",
"graphaware/neo4j-response-formatter": "^1.0"
},此外,自动加载器(通常由composer提供)用于加载文件。这将只加载运行时实际使用(包括/需要)的文件。因此,您将不会在内存中得到100 So的PHP代码。
您可以运行测试(在用法和用法的帮助下)来检查应用程序使用/不使用NeoClient占用了多少内存。
备选方案
您可以查看这部分,以找到php的替代驱动程序。
neo4jphp -看上去很有前途。没有任何依赖关系:
"require": {
"php": ">=5.3.0",
"ext-curl": "*"
},因此,这个库非常轻量级。
注意: Neo4j服务器只是带有JSON输出的REST。您可以在项目中为您的需要实现简单的库。但是不推荐它,因为已经存在轻量级的替代方案。
https://stackoverflow.com/questions/32903712
复制相似问题