=== ObjectNest Cache ===
Contributors: shahidirfan100
Tags: memcached, object cache, performance, cache, site health
Requires at least: 5.8
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Persistent Memcached object caching with a clear dashboard, health statistics, safe connection controls, and an optional disk fallback.

== Description ==

ObjectNest Cache makes persistent object caching understandable and manageable inside WordPress. It connects WordPress to a Memcached server through the standard `wp-content/object-cache.php` drop-in and explains whether the PHP extension, server, and drop-in are working.

The plugin stays local-first. It does not create an account, send site data to a remote service, add frontend assets, or track visitors.

== Features ==

* Automatic discovery of common local Memcached endpoints.
* Custom Memcached host and port configuration.
* Connection test with actionable diagnostics.
* Safe connect and disconnect controls.
* Refuses to overwrite a foreign object-cache.php drop-in.
* Live Memcached version, uptime, hit ratio, items, memory, connections, traffic, and evictions.
* Optional disk object-cache fallback when Memcached is unavailable.
* Explicit administrator-only cache flush action protected by a nonce.
* Responsive, keyboard-friendly WordPress admin dashboard.
* A compact WordPress Dashboard widget showing live hit ratio, memory, items, evictions, and uptime.

== Requirements ==

* WordPress 5.8 or newer.
* PHP 7.4 or newer.
* For Memcached: the PECL `memcached` extension and a reachable Memcached server.
* The legacy PECL `memcache` extension is not the extension used by the Memcached backend.

== Installation ==

1. Install and activate ObjectNest Cache.
2. Open ObjectNest Cache in the WordPress admin menu.
3. Confirm the PHP extension and server readiness checks.
4. Choose automatic discovery or save a custom host and port.
5. Select Connect. ObjectNest will create its own `object-cache.php` only when no foreign drop-in is present.

If Memcached is unavailable, choose the optional disk fallback. Disk fallback is intended as a compatibility option, not a replacement for a properly configured memory cache.

== Screenshots ==

1. Review the cache state, connection controls, summary metrics, and health checks from the ObjectNest dashboard.
2. Inspect the Memcached statistics area and choose automatic discovery from the connection settings panel.
3. Configure a custom Memcached host and port while keeping the fallback choice visible.
4. Monitor live Memcached health metrics from the WordPress Dashboard widget.

== Safety ==

ObjectNest never overwrites an object-cache.php file it does not own. Memcached should listen on a private interface or protected network; do not expose it to the public internet. Cache keys are salted per WordPress installation when the generated drop-in is created.

The Flush action affects the connected cache backend's pool. Use it only when you understand whether that server is shared with other applications.

== Frequently Asked Questions ==

= Why does the dashboard say the PHP extension is missing? =

The Memcached daemon and PHP extension are separate. Ask your host to enable the PECL `memcached` extension for the PHP version serving WordPress.

= Why will ObjectNest not connect? =

Check the PHP extension, host and port, server firewall, and whether another persistent object-cache plugin already owns `wp-content/object-cache.php`.

= Can ObjectNest run with Redis Object Cache or another object-cache plugin? =

Only one persistent object-cache drop-in should be active at a time. ObjectNest reports a conflict and does not overwrite another plugin's file.

= Does ObjectNest cache frontend pages? =

No. It provides persistent WordPress object caching. Page caching, browser caching, CDN caching, and PHP OPcache are separate layers.
