Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Towards a v1.0.0 release. #50

Open
11 of 16 tasks
ChadSikorra opened this issue Jan 29, 2022 · 5 comments
Open
11 of 16 tasks

Towards a v1.0.0 release. #50

ChadSikorra opened this issue Jan 29, 2022 · 5 comments
Milestone

Comments

@ChadSikorra
Copy link
Contributor

ChadSikorra commented Jan 29, 2022

I would like to release a v1.0.0 version of this library, as it has been getting many 0.x.0 releases and I haven't really defined what a 1.0.0 type of release would need. The main things I think need to happen are:

  • Drop support for EOL versions of PHP. The older versions of this library will have to suffice for those that need it. This would effectively bump the library to PHP 7.4.
  • Add a more fluent search builder class. This would mostly be a wrapper around the existing LdapClient with some additional convenience. Currently, building up some searches can still be awkward in code with the methods currently provided.
  • Support client-side RFC4533. This seems largely OpenLDAP specific for directory synchronization. This library already supports a client for AD specific directory synchronization, so adding this would be good to even it out.

TODO

  • Bump the PHP version to 8.1.
  • Add proper types, return types, and use strict_types throughout the codebase.
  • Use Options objects instead of arrays for the LdapClient and LdapServer.
    • Verify client-side referral chasing works as expected after the options changes.
    • Update documentation related to options.
  • Add a more fluid search builder.
  • Support client-side RFC4533 for interacting with directory synchronization.
    • Verify the poll logic is implemented properly for content updates. Needs integration tests.
  • Support faster search result processing via anonymous functions instead of waiting for a complete result set to be returned.
    • Update documentation to demonstrate this new usage in searching.
  • Support canceling sync / search requests in the client.
  • Add an upgrade guide for changes:
    • Options changes from array to objects.
    • Server request handlers only support object instances now.
    • Server request handlers for searching must return a SearchResult object.
    • Making a server proxy instance uses options objects now.
@ChadSikorra ChadSikorra added this to the 1.0.0 milestone Jan 29, 2022
@davidbuzz
Copy link

implement a complete server?

@ChadSikorra
Copy link
Contributor Author

ChadSikorra commented Dec 18, 2022

implement a complete server?

It will likely continue to be a limited server component, unfortunately. Though I would like to add support for server side sorting, maybe some other controls

The big issue with a complete server is the backend storage implementation, which I'm not super familiar with in general.

@davidbuzz
Copy link

davidbuzz commented Dec 18, 2022

The big issue with a complete server is the backend storage implementation, which I'm not super familiar with in general.

OpenLDAP has a few "backends" - such as MDB - which is just a in-memory storage, BDB which is a simple embedded database a bit like sqlite, but to be honest as a proof-of-concept in native php it doesn't need to be fast/quick/good, so it could just as easily be a big in-ram object/array/list-of-lists kinda thing, optionally persisted-to-disk [or database] using serialize() / unserialize() as a first try. It could alternatively just be stored on-disk as one or more json file/s or something.

ref: https://www.openldap.org/doc/admin24/backends.html

@ChadSikorra
Copy link
Contributor Author

I want to finish up the outstanding work for a final release here. However, it might not happen until closer towards the end of the year. I'm currently looking for a job and that is taking priority over this for the time being.

@ChadSikorra
Copy link
Contributor Author

Job search is complete...but now the opposite problem is all my time being taken up by work 😢 Still hope to complete this one way or another.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

When branches are created from issues, their pull requests are automatically linked.

2 participants