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

Be explicit for no results when using wp transient list and external object cache #61

Closed
GaryJones opened this issue Mar 13, 2020 · 6 comments · Fixed by #82
Closed
Assignees
Milestone

Comments

@GaryJones
Copy link

When using an external object cache, transients are stored in the object cache and not in the database.

wp transient get ... will still work correctly, as it wraps the get_transient() or get_site_transient() functions.

However, wp transient list will always return an empty table, as the handler for the WP-CLI command generates some SQL to explicitly look in the options or sitemeta tables, which will be empty of transients.

Could we have an early guard clause for the list() method that reminds users that transients are stored in the object cache and so can't be displayed, if the object cache is being used?

(At least until WP core has get_transients() function that can be wrapped.)

@GaryJones GaryJones changed the title Be explicit for not results when using wp transient list and external object cache Be explicit for no results when using wp transient list and external object cache Mar 13, 2020
@sjaks
Copy link

sjaks commented Jul 24, 2020

The wp transient list command should indeed show a message that object cache is in use, at the very least. The expected behavior is to get the cached transients as stated in Transient_Command.php#L15. It would be important to wrap object cache.

@mackensen
Copy link

This was a real head-scratcher when I encountered it today. If you're using Redis (for example) you can do something like KEYS XXX:transient:*, where XXX is the site id, to get all the transients, but that's not cross-platform and there doesn't seem to be a core function for getting object cache keys.

@GaryJones
Copy link
Author

Adding a guard clause of wp_using_ext_object_cache() at the start of https://github.com/wp-cli/cache-command/blob/main/src/Transient_Command.php#L76 may be sufficient.

@danielbachhuber
Copy link
Member

@GaryJones Want to submit a pull request for what you might suggest?

@GaryJones
Copy link
Author

@danielbachhuber It's not something I'm going to get around to anytime soon, so please go ahead :-)

@danielbachhuber
Copy link
Member

#82

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

Successfully merging a pull request may close this issue.

4 participants