66
dfox
7y

A simple, open source Neo4j client written in PHP - help craft project decisions and develop as a team

Project Type
Existing open source project
Summary

A simple, open source Neo4j client written in PHP - help craft project decisions and develop as a team

Description
Taking my learnings from various Neoj4j dev projects I've worked on with a PHP codebase, I'm trying to take the crappy PHP adapter I've thrown together over a few years and make it a real open source project. Then the idea would be that eventually I would switch out the crappy Neo4j adapter devRant users and have the new open source one be the adapter used to power the app! And of course anyone else could use it too. I put together a tiny bit of groundwork for it this week, but I'm looking for some contributors to work on it with who are passionate about PHP and want to have a hand in contributing to a fully unit-tested and documented PHP library. You don't need Neo4j experience to contribute (though it's definitely a plus, but I can also provide a lot of information), but you do need to like PHP and ideally have some PHPUnit experience. I want to form a team to decide exactly what the library will look like and the specifics, but here's a basic outline of what we need to do: - functionality will probably include single Cypher queries and batch Cypher queries against the REST API along with a nice kind of result object that helps you consume a Neo4j REST API formatted result - fully unit tested - have a code formatting spec and run phpcs in addition to unit tests on each PR - fully documented - details on how others can contribute Anyway, if anyone is interested in helping out on this or if you have any questions, just let me know in the comments!
Tech Stack
PHP 7, Guzzle, PHPUnit, TravisCi
Current Team Size
1
URL
Comments
  • 3
    hey, i'm very interested in this kind of project! i can't really tell, how much time i have to invest in the project, but i'd love to contribute!
    some pieces of information about me: 5 years experience in php development, i'm using phpunit/phpmd/phpcs in every project and i'm very concerned about code quality.
    would love to hear from you!
  • 2
    I'm really interested too, don't have php unit experience yet but have 2 months in a project with neo4j, probably not the ideal experience you need but I would like to contribute on what I can :)
  • 3
    Sounds really interesting.

    I have some experience with Guzzle, phpunit, as well as lots of php experience. Unfortunately I haven't worked with neo, but it looks like something I could get into.

    Would it be possible to contribute by github issues at this point or is that something you imagine being part of the "how people can contribute" point?
  • 1
    @Gerschtli awesome! I really want to focus on code quality for this and bounce ideas off everyone so I think you'd be good :)

    @azous sounds good! Neo4j experience will definitely be helpful for this.

    @typodeaf great! I think that's perfect, any way people want to contribute in the beginning will be fine.

    I think the first step is for anyone who isn't familiar with Neo4j, and wants to work directly with creating functionality, is to experiment with Neo4j a bit.

    But it's also fine if people want to do things that aren't directly functionality, like set up code sniffs and a code style guideline, etc.

    Also, you can take a look at the repo and the very basic stuff I put in there and see what you think/ideas you might have. I'll try to start making some basic GitHub issues today for high-level items that need to be done.
  • 1
    @dfox would love to help out. Not a lot of knowledge with Neo4j but I can help out with the php and unit testing for sure!
  • 0
    Hey everyone! Apologies for the delay. I was busy with a lot devRant-related stuff this week but I want to start putting in some work on this project.

    I made some issues in the GitHub repo which you can see here: https://github.com/DFoxinator/...

    If any of those interest you just let me know. I think a lot of them need some discussion but I wanted to just lay out some of the stuff I think the library will need. Please don't hesitate to tell me I missed some stuff or you don't think something should be there :)

    @krazy-dev awesome!
  • 1
    @kalippu did you execute composer update?
    and i think a simple "phpunit" should work
  • 0
    @kalippu from the root of the project directory, running this should do the trick:

    vendor/bin/phpunit tests/unit/ClientTest.php

    Or just
    vendor/bin/phpunit
    To run all tests

    If you don't have the vendor directory, you need to do
    composer install

    I'm currently refactoring Client to take a confit array instead of params.
  • 0
    I want to contribute but I don't know anything about the project.
    Maybe you could make
    - Plans (What needs to be done and what is currently in work)
    - Contributing Guidelines
    - And what you are doing right now

    Thanks,
    Skayo
  • 0
    Would love to take part in this
Add Comment