[{"data":1,"prerenderedAt":6487},["ShallowReactive",2],{"docs-nav":3,"doc-latest\u002Fscaffold\u002Fwalkthrough":691,"docs-prevnext-flat":6167},[4,27,51,653,663,670,683],{"title":5,"order":6,"key":7,"items":8,"packages":26},"Getting Started",1,"getting-started",[9,11,15,19,23],{"path":10,"title":5,"order":6},"\u002Fdocs\u002Flatest\u002Fgetting-started",{"path":12,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fgetting-started\u002Finstallation","Installation",3,{"path":16,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fgetting-started\u002Fconfiguration","Configuration",4,{"path":20,"title":21,"order":22},"\u002Fdocs\u002Flatest\u002Fgetting-started\u002Fquick-start","Quick Start",50,{"path":24,"title":25,"order":22},"\u002Fdocs\u002Flatest\u002Fgetting-started\u002Ftutorial","Tutorial: Build a Notes Plugin",{},{"title":28,"order":29,"key":30,"items":31,"packages":50},"Core Concepts",2,"concepts",[32,35,38,41,44,47],{"path":33,"title":34,"order":22},"\u002Fdocs\u002Flatest\u002Fconcepts\u002Farchitecture","Architecture Overview",{"path":36,"title":37,"order":22},"\u002Fdocs\u002Flatest\u002Fconcepts\u002Fhooks","Hook System",{"path":39,"title":40,"order":22},"\u002Fdocs\u002Flatest\u002Fconcepts\u002Fplugin-context","Plugin Context",{"path":42,"title":43,"order":22},"\u002Fdocs\u002Flatest\u002Fconcepts\u002Flifecycle","Request Lifecycle",{"path":45,"title":46,"order":22},"\u002Fdocs\u002Flatest\u002Fconcepts\u002Fcontainer","Service Container",{"path":48,"title":49,"order":22},"\u002Fdocs\u002Flatest\u002Fconcepts\u002Fservice-providers","Service Providers",{},{"title":52,"order":14,"key":53,"items":54,"packages":55},"Packages","packages",[],{"wpzylos-assets":56,"wpzylos-cli-core":91,"wpzylos-cli-devtool":114,"wpzylos-config":136,"wpzylos-container":158,"wpzylos-core":180,"wpzylos-database":202,"wpzylos-events":224,"wpzylos-hooks":246,"wpzylos-http":269,"wpzylos-i18n":291,"wpzylos-logger":313,"wpzylos-mail":335,"wpzylos-mcp":357,"wpzylos-migrations":376,"wpzylos-model":398,"wpzylos-notification":420,"wpzylos-queue":442,"wpzylos-requirements":464,"wpzylos-routing":486,"wpzylos-scaffold":514,"wpzylos-scheduler":545,"wpzylos-security":567,"wpzylos-validation":587,"wpzylos-views":609,"wpzylos-wp-cli":631},[57,60,63,65,67,71,75,79,83,87],{"path":58,"title":59,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-assets","WPZylos Assets",{"path":61,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-assets\u002Foverview","Overview",{"path":64,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-assets\u002Finstallation",{"path":66,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-assets\u002Fconfiguration",{"path":68,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-assets\u002Fusage","Usage",5,{"path":72,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-assets\u002Fapi-reference","API Reference",6,{"path":76,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-assets\u002Fexamples","Examples",7,{"path":80,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-assets\u002Ftesting","Testing",8,{"path":84,"title":85,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-assets\u002Fsecurity","Security",9,{"path":88,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-assets\u002Ftroubleshooting","Troubleshooting",10,[92,95,97,99,101,103,105,107,109,112],{"path":93,"title":94,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-core","WPZylos CLI Core Documentation",{"path":96,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-core\u002Foverview",{"path":98,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-core\u002Finstallation",{"path":100,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-core\u002Fconfiguration",{"path":102,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-core\u002Fusage",{"path":104,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-core\u002Fapi-reference",{"path":106,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-core\u002Fexamples",{"path":108,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-core\u002Ftesting",{"path":110,"title":111,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-core\u002Fsecurity","Security Notes",{"path":113,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-core\u002Ftroubleshooting",[115,118,120,122,124,126,128,130,132,134],{"path":116,"title":117,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-devtool","WPZylos CLI Devtool Documentation",{"path":119,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-devtool\u002Foverview",{"path":121,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-devtool\u002Finstallation",{"path":123,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-devtool\u002Fconfiguration",{"path":125,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-devtool\u002Fusage",{"path":127,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-devtool\u002Fapi-reference",{"path":129,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-devtool\u002Fexamples",{"path":131,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-devtool\u002Ftesting",{"path":133,"title":111,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-devtool\u002Fsecurity",{"path":135,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-cli-devtool\u002Ftroubleshooting",[137,140,142,144,146,148,150,152,154,156],{"path":138,"title":139,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-config","WPZylos Config",{"path":141,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-config\u002Foverview",{"path":143,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-config\u002Finstallation",{"path":145,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-config\u002Fconfiguration",{"path":147,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-config\u002Fusage",{"path":149,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-config\u002Fapi-reference",{"path":151,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-config\u002Fexamples",{"path":153,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-config\u002Ftesting",{"path":155,"title":111,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-config\u002Fsecurity",{"path":157,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-config\u002Ftroubleshooting",[159,162,164,166,168,170,172,174,176,178],{"path":160,"title":161,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-container","WPZylos Container",{"path":163,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-container\u002Foverview",{"path":165,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-container\u002Finstallation",{"path":167,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-container\u002Fconfiguration",{"path":169,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-container\u002Fusage",{"path":171,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-container\u002Fapi-reference",{"path":173,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-container\u002Fexamples",{"path":175,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-container\u002Ftesting",{"path":177,"title":111,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-container\u002Fsecurity",{"path":179,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-container\u002Ftroubleshooting",[181,184,186,188,190,192,194,196,198,200],{"path":182,"title":183,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-core","WPZylos Core",{"path":185,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-core\u002Foverview",{"path":187,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-core\u002Finstallation",{"path":189,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-core\u002Fconfiguration",{"path":191,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-core\u002Fusage",{"path":193,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-core\u002Fapi-reference",{"path":195,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-core\u002Fexamples",{"path":197,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-core\u002Ftesting",{"path":199,"title":111,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-core\u002Fsecurity",{"path":201,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-core\u002Ftroubleshooting",[203,206,208,210,212,214,216,218,220,222],{"path":204,"title":205,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-database","WPZylos Database",{"path":207,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-database\u002Foverview",{"path":209,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-database\u002Finstallation",{"path":211,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-database\u002Fconfiguration",{"path":213,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-database\u002Fusage",{"path":215,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-database\u002Fapi-reference",{"path":217,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-database\u002Fexamples",{"path":219,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-database\u002Ftesting",{"path":221,"title":111,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-database\u002Fsecurity",{"path":223,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-database\u002Ftroubleshooting",[225,228,230,232,234,236,238,240,242,244],{"path":226,"title":227,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-events","WPZylos Events",{"path":229,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-events\u002Foverview",{"path":231,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-events\u002Finstallation",{"path":233,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-events\u002Fconfiguration",{"path":235,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-events\u002Fusage",{"path":237,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-events\u002Fapi-reference",{"path":239,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-events\u002Fexamples",{"path":241,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-events\u002Ftesting",{"path":243,"title":85,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-events\u002Fsecurity",{"path":245,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-events\u002Ftroubleshooting",[247,250,252,254,256,259,261,263,265,267],{"path":248,"title":249,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-hooks","WPZylos Hooks",{"path":251,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-hooks\u002Foverview",{"path":253,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-hooks\u002Finstallation",{"path":255,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-hooks\u002Fconfiguration",{"path":257,"title":258,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-hooks\u002Fusage","Usage Guide",{"path":260,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-hooks\u002Fapi-reference",{"path":262,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-hooks\u002Fexamples",{"path":264,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-hooks\u002Ftesting",{"path":266,"title":111,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-hooks\u002Fsecurity",{"path":268,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-hooks\u002Ftroubleshooting",[270,273,275,277,279,281,283,285,287,289],{"path":271,"title":272,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-http","WPZylos HTTP",{"path":274,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-http\u002Foverview",{"path":276,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-http\u002Finstallation",{"path":278,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-http\u002Fconfiguration",{"path":280,"title":258,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-http\u002Fusage",{"path":282,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-http\u002Fapi-reference",{"path":284,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-http\u002Fexamples",{"path":286,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-http\u002Ftesting",{"path":288,"title":111,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-http\u002Fsecurity",{"path":290,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-http\u002Ftroubleshooting",[292,295,297,299,301,303,305,307,309,311],{"path":293,"title":294,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-i18n","WPZylos I18n",{"path":296,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-i18n\u002Foverview",{"path":298,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-i18n\u002Finstallation",{"path":300,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-i18n\u002Fconfiguration",{"path":302,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-i18n\u002Fusage",{"path":304,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-i18n\u002Fapi-reference",{"path":306,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-i18n\u002Fexamples",{"path":308,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-i18n\u002Ftesting",{"path":310,"title":111,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-i18n\u002Fsecurity",{"path":312,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-i18n\u002Ftroubleshooting",[314,317,319,321,323,325,327,329,331,333],{"path":315,"title":316,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-logger","WPZylos Logger",{"path":318,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-logger\u002Foverview",{"path":320,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-logger\u002Finstallation",{"path":322,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-logger\u002Fconfiguration",{"path":324,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-logger\u002Fusage",{"path":326,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-logger\u002Fapi-reference",{"path":328,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-logger\u002Fexamples",{"path":330,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-logger\u002Ftesting",{"path":332,"title":111,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-logger\u002Fsecurity",{"path":334,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-logger\u002Ftroubleshooting",[336,339,341,343,345,347,349,351,353,355],{"path":337,"title":338,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-mail","WPZylos Mail",{"path":340,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-mail\u002Foverview",{"path":342,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-mail\u002Finstallation",{"path":344,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-mail\u002Fconfiguration",{"path":346,"title":258,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-mail\u002Fusage",{"path":348,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-mail\u002Fapi-reference",{"path":350,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-mail\u002Fexamples",{"path":352,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-mail\u002Ftesting",{"path":354,"title":85,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-mail\u002Fsecurity",{"path":356,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-mail\u002Ftroubleshooting",[358,361,363,365,367,369,371,373],{"path":359,"title":360,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-mcp","WPZylos MCP",{"path":362,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-mcp\u002Foverview",{"path":364,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-mcp\u002Finstallation",{"path":366,"title":258,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-mcp\u002Fusage",{"path":368,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-mcp\u002Fapi-reference",{"path":370,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-mcp\u002Fexamples",{"path":372,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-mcp\u002Ftroubleshooting",{"path":374,"title":375,"order":22},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-mcp\u002Fcompanion-mcps","MCP Setup Guide",[377,380,382,384,386,388,390,392,394,396],{"path":378,"title":379,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-migrations","WPZylos Migrations",{"path":381,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-migrations\u002Foverview",{"path":383,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-migrations\u002Finstallation",{"path":385,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-migrations\u002Fconfiguration",{"path":387,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-migrations\u002Fusage",{"path":389,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-migrations\u002Fapi-reference",{"path":391,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-migrations\u002Fexamples",{"path":393,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-migrations\u002Ftesting",{"path":395,"title":111,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-migrations\u002Fsecurity",{"path":397,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-migrations\u002Ftroubleshooting",[399,402,404,406,408,410,412,414,416,418],{"path":400,"title":401,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-model","WPZylos Model",{"path":403,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-model\u002Foverview",{"path":405,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-model\u002Finstallation",{"path":407,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-model\u002Fconfiguration",{"path":409,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-model\u002Fusage",{"path":411,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-model\u002Fapi-reference",{"path":413,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-model\u002Fexamples",{"path":415,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-model\u002Ftesting",{"path":417,"title":85,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-model\u002Fsecurity",{"path":419,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-model\u002Ftroubleshooting",[421,424,426,428,430,432,434,436,438,440],{"path":422,"title":423,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-notification","WPZylos Notification",{"path":425,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-notification\u002Foverview",{"path":427,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-notification\u002Finstallation",{"path":429,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-notification\u002Fconfiguration",{"path":431,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-notification\u002Fusage",{"path":433,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-notification\u002Fapi-reference",{"path":435,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-notification\u002Fexamples",{"path":437,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-notification\u002Ftesting",{"path":439,"title":85,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-notification\u002Fsecurity",{"path":441,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-notification\u002Ftroubleshooting",[443,446,448,450,452,454,456,458,460,462],{"path":444,"title":445,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-queue","WPZylos Queue",{"path":447,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-queue\u002Foverview",{"path":449,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-queue\u002Finstallation",{"path":451,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-queue\u002Fconfiguration",{"path":453,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-queue\u002Fusage",{"path":455,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-queue\u002Fapi-reference",{"path":457,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-queue\u002Fexamples",{"path":459,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-queue\u002Ftesting",{"path":461,"title":85,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-queue\u002Fsecurity",{"path":463,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-queue\u002Ftroubleshooting",[465,468,470,472,474,476,478,480,482,484],{"path":466,"title":467,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-requirements","WPZylos Requirements",{"path":469,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-requirements\u002Foverview",{"path":471,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-requirements\u002Finstallation",{"path":473,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-requirements\u002Fconfiguration",{"path":475,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-requirements\u002Fusage",{"path":477,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-requirements\u002Fapi-reference",{"path":479,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-requirements\u002Fexamples",{"path":481,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-requirements\u002Ftesting",{"path":483,"title":85,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-requirements\u002Fsecurity",{"path":485,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-requirements\u002Ftroubleshooting",[487,490,492,494,496,498,500,502,504,506,508,511],{"path":488,"title":489,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-routing","WPZylos Routing",{"path":491,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-routing\u002Foverview",{"path":493,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-routing\u002Finstallation",{"path":495,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-routing\u002Fconfiguration",{"path":497,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-routing\u002Fusage",{"path":499,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-routing\u002Fapi-reference",{"path":501,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-routing\u002Fexamples",{"path":503,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-routing\u002Ftesting",{"path":505,"title":85,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-routing\u002Fsecurity",{"path":507,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-routing\u002Ftroubleshooting",{"path":509,"title":510,"order":22},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-routing\u002Fajax","AJAX Routing",{"path":512,"title":513,"order":22},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-routing\u002Frest-api","REST API Routing",[515,518,520,522,524,526,528,530,532,535,537,539,542],{"path":516,"title":517,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scaffold","WPZylos Scaffold Documentation",{"path":519,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scaffold\u002Foverview",{"path":521,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scaffold\u002Finstallation",{"path":523,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scaffold\u002Fconfiguration",{"path":525,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scaffold\u002Fusage",{"path":527,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scaffold\u002Fapi-reference",{"path":529,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scaffold\u002Fexamples",{"path":531,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scaffold\u002Ftesting",{"path":533,"title":534,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scaffold\u002Fui","UI Components (DaisyUI)",{"path":536,"title":111,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scaffold\u002Fsecurity",{"path":538,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scaffold\u002Ftroubleshooting",{"path":540,"title":541,"order":22},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scaffold\u002Fcli-reference","Scaffold CLI Reference",{"path":543,"title":544,"order":22},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scaffold\u002Fwalkthrough","Scaffold Walkthrough",[546,549,551,553,555,557,559,561,563,565],{"path":547,"title":548,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scheduler","WPZylos Scheduler",{"path":550,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scheduler\u002Foverview",{"path":552,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scheduler\u002Finstallation",{"path":554,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scheduler\u002Fconfiguration",{"path":556,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scheduler\u002Fusage",{"path":558,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scheduler\u002Fapi-reference",{"path":560,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scheduler\u002Fexamples",{"path":562,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scheduler\u002Ftesting",{"path":564,"title":85,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scheduler\u002Fsecurity",{"path":566,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-scheduler\u002Ftroubleshooting",[568,571,573,575,577,579,581,583,585],{"path":569,"title":570,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-security","WPZylos Security",{"path":572,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-security\u002Foverview",{"path":574,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-security\u002Finstallation",{"path":576,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-security\u002Fconfiguration",{"path":578,"title":258,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-security\u002Fusage",{"path":580,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-security\u002Fapi-reference",{"path":582,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-security\u002Fexamples",{"path":584,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-security\u002Ftesting",{"path":586,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-security\u002Ftroubleshooting",[588,591,593,595,597,599,601,603,605,607],{"path":589,"title":590,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-validation","WPZylos Validation",{"path":592,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-validation\u002Foverview",{"path":594,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-validation\u002Finstallation",{"path":596,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-validation\u002Fconfiguration",{"path":598,"title":258,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-validation\u002Fusage",{"path":600,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-validation\u002Fapi-reference",{"path":602,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-validation\u002Fexamples",{"path":604,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-validation\u002Ftesting",{"path":606,"title":111,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-validation\u002Fsecurity",{"path":608,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-validation\u002Ftroubleshooting",[610,613,615,617,619,621,623,625,627,629],{"path":611,"title":612,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-views","WPZylos Views",{"path":614,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-views\u002Foverview",{"path":616,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-views\u002Finstallation",{"path":618,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-views\u002Fconfiguration",{"path":620,"title":258,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-views\u002Fusage",{"path":622,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-views\u002Fapi-reference",{"path":624,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-views\u002Fexamples",{"path":626,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-views\u002Ftesting",{"path":628,"title":111,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-views\u002Fsecurity",{"path":630,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-views\u002Ftroubleshooting",[632,635,637,639,641,643,645,647,649,651],{"path":633,"title":634,"order":6},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-wp-cli","WPZylos WP-CLI",{"path":636,"title":62,"order":29},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-wp-cli\u002Foverview",{"path":638,"title":13,"order":14},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-wp-cli\u002Finstallation",{"path":640,"title":17,"order":18},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-wp-cli\u002Fconfiguration",{"path":642,"title":69,"order":70},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-wp-cli\u002Fusage",{"path":644,"title":73,"order":74},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-wp-cli\u002Fapi-reference",{"path":646,"title":77,"order":78},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-wp-cli\u002Fexamples",{"path":648,"title":81,"order":82},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-wp-cli\u002Ftesting",{"path":650,"title":111,"order":86},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-wp-cli\u002Fsecurity",{"path":652,"title":89,"order":90},"\u002Fdocs\u002Flatest\u002Fpackages\u002Fwpzylos-wp-cli\u002Ftroubleshooting",{"title":654,"order":18,"key":655,"items":656,"packages":662},"Scaffold","scaffold",[657,660],{"path":658,"title":659,"order":6},"\u002Fdocs\u002Flatest\u002Fscaffold","Scaffold Guide",{"path":661,"title":544,"order":22},"\u002Fdocs\u002Flatest\u002Fscaffold\u002Fwalkthrough",{},{"title":85,"order":70,"key":664,"items":665,"packages":669},"security",[666],{"path":667,"title":668,"order":29},"\u002Fdocs\u002Flatest\u002Fsecurity\u002Foverview","Security Overview",{},{"title":81,"order":74,"key":671,"items":672,"packages":682},"testing",[673,676,679],{"path":674,"title":675,"order":29},"\u002Fdocs\u002Flatest\u002Ftesting\u002Foverview","Testing Overview",{"path":677,"title":678,"order":22},"\u002Fdocs\u002Flatest\u002Ftesting\u002Fintegration-tests","Integration Testing",{"path":680,"title":681,"order":22},"\u002Fdocs\u002Flatest\u002Ftesting\u002Funit-tests","Unit Testing",{},{"title":684,"order":78,"key":685,"items":686,"packages":690},"Distribution","distribution",[687],{"path":688,"title":689,"order":29},"\u002Fdocs\u002Flatest\u002Fdistribution\u002Foverview","Distribution Guide",{},{"id":692,"title":544,"body":693,"description":703,"extension":6162,"meta":6163,"navigation":817,"order":22,"package":655,"path":661,"seo":6164,"stem":6165,"__hash__":6166},"content\u002Fdocs\u002Flatest\u002Fscaffold\u002Fwalkthrough.md",{"type":694,"value":695,"toc":6143},"minimark",[696,700,704,709,712,731,735,749,753,789,793,796,829,832,921,928,932,940,944,951,1459,1465,1494,1498,1505,2157,2163,2167,2173,2966,2971,2999,3003,3008,3587,3591,3596,4545,4549,4558,5221,5225,5230,5921,5925,5932,5982,5985,5997,6001,6018,6025,6029,6032,6059,6062,6083,6087,6116,6120,6139],[697,698,544],"h1",{"id":699},"scaffold-walkthrough",[701,702,703],"p",{},"Build a complete WordPress plugin from scratch using the WPZylos scaffold.",[705,706,708],"h2",{"id":707},"what-well-build","What We'll Build",[701,710,711],{},"A \"Contact Manager\" plugin with:",[713,714,715,719,722,725,728],"ul",{},[716,717,718],"li",{},"Custom database table for contacts",[716,720,721],{},"Admin dashboard with contact list",[716,723,724],{},"Add\u002Fedit contact forms",[716,726,727],{},"AJAX-powered delete",[716,729,730],{},"Proper security (nonce, capability, sanitization)",[705,732,734],{"id":733},"prerequisites","Prerequisites",[713,736,737,740,743,746],{},[716,738,739],{},"PHP 8.1+",[716,741,742],{},"WordPress 6.0+ installed locally",[716,744,745],{},"Composer 2.0+ installed",[716,747,748],{},"WP-CLI installed (recommended)",[705,750,752],{"id":751},"step-1-create-project","Step 1: Create Project",[754,755,760],"pre",{"className":756,"code":757,"language":758,"meta":759,"style":759},"language-bash shiki shiki-themes github-light github-dark","composer create-project MyCompanystudio\u002Fwpzylos-scaffold contact-manager\ncd contact-manager\n","bash","",[761,762,763,781],"code",{"__ignoreMap":759},[764,765,767,771,775,778],"span",{"class":766,"line":6},"line",[764,768,770],{"class":769},"sScJk","composer",[764,772,774],{"class":773},"sZZnC"," create-project",[764,776,777],{"class":773}," MyCompanystudio\u002Fwpzylos-scaffold",[764,779,780],{"class":773}," contact-manager\n",[764,782,783,787],{"class":766,"line":29},[764,784,786],{"class":785},"sj4cs","cd",[764,788,780],{"class":773},[705,790,792],{"id":791},"step-2-initialize-plugin","Step 2: Initialize Plugin",[701,794,795],{},"Run the scaffold CLI to configure your plugin identity:",[754,797,801],{"className":798,"code":799,"language":800,"meta":759,"style":759},"language-powershell shiki shiki-themes github-light github-dark","# Windows (PowerShell)\n.\\scaffold.ps1 init\n\n# Linux\u002FMac\n.\u002Fscaffold.sh init\n","powershell",[761,802,803,808,813,819,824],{"__ignoreMap":759},[764,804,805],{"class":766,"line":6},[764,806,807],{},"# Windows (PowerShell)\n",[764,809,810],{"class":766,"line":29},[764,811,812],{},".\\scaffold.ps1 init\n",[764,814,815],{"class":766,"line":14},[764,816,818],{"emptyLinePlaceholder":817},true,"\n",[764,820,821],{"class":766,"line":18},[764,822,823],{},"# Linux\u002FMac\n",[764,825,826],{"class":766,"line":70},[764,827,828],{},".\u002Fscaffold.sh init\n",[701,830,831],{},"The CLI will ask for:",[833,834,835,851],"table",{},[836,837,838],"thead",{},[839,840,841,845,848],"tr",{},[842,843,844],"th",{},"Prompt",[842,846,847],{},"Enter This",[842,849,850],{},"Description",[852,853,854,866,877,888,899,910],"tbody",{},[839,855,856,860,863],{},[857,858,859],"td",{},"Plugin Name",[857,861,862],{},"Contact Manager",[857,864,865],{},"Display name",[839,867,868,871,874],{},[857,869,870],{},"Plugin Slug",[857,872,873],{},"contact-manager",[857,875,876],{},"Lowercase, hyphenated",[839,878,879,882,885],{},[857,880,881],{},"Namespace",[857,883,884],{},"ContactManager",[857,886,887],{},"PascalCase PHP namespace",[839,889,890,893,896],{},[857,891,892],{},"Scoper Prefix",[857,894,895],{},"contact_manager",[857,897,898],{},"For PHP-Scoper isolation",[839,900,901,904,907],{},[857,902,903],{},"Database Prefix",[857,905,906],{},"cm_",[857,908,909],{},"For DB tables and options",[839,911,912,915,918],{},[857,913,914],{},"Author Name",[857,916,917],{},"Your Name",[857,919,920],{},"Plugin author",[701,922,923,924,927],{},"After init, your plugin is renamed and configured. The scaffold saves all settings to ",[761,925,926],{},".plugin-config.json",".",[705,929,931],{"id":930},"step-3-understand-the-generated-structure","Step 3: Understand the Generated Structure",[754,933,938],{"className":934,"code":936,"language":937},[935],"language-text","your-plugin\u002F\n+-- app\u002F                        # Application code (PSR-4)\n|   +-- Core\u002F\n|   |   +-- PluginContext.php    # Plugin identity\n|   +-- Http\u002F\n|   |   +-- Controllers\u002F        # Request handlers\n|   +-- Providers\u002F              # Service providers\n|   +-- Services\u002F               # Business logic\n|   +-- Support\u002F\n|   |   +-- helpers.php         # Global helpers\n|   +-- Lifecycle\u002F\n|       +-- Activator.php       # Activation logic\n|       +-- Deactivator.php     # Deactivation logic\n|       +-- Uninstaller.php     # Uninstall cleanup\n+-- bootstrap\u002F\n|   +-- app.php                 # Bootstrap & providers\n+-- config\u002F\n|   +-- app.php                 # Configuration\n+-- database\u002F\n|   +-- migrations\u002F             # Schema migrations\n+-- resources\u002F\n|   +-- lang\u002F                   # Translations\n|   +-- views\u002F                  # Templates\n+-- routes\u002F\n|   +-- web.php                 # Route definitions\n+-- tests\u002F                      # PHPUnit tests\n+-- your-plugin.php             # Main entry point\n+-- uninstall.php               # WordPress uninstall\n+-- scaffold.ps1                # CLI (Windows)\n+-- scaffold.sh                 # CLI (Linux\u002FMac)\n+-- scoper.inc.php              # PHP-Scoper config\n+-- composer.json\n","text",[761,939,936],{"__ignoreMap":759},[705,941,943],{"id":942},"step-4-understand-the-plugin-file","Step 4: Understand the Plugin File",[701,945,946,947,950],{},"The main plugin file (",[761,948,949],{},"contact-manager.php",") follows this pattern:",[754,952,956],{"className":953,"code":954,"language":955,"meta":759,"style":759},"language-php shiki shiki-themes github-light github-dark","\u003C?php\n\u002F**\n * Plugin Name: Contact Manager\n * Description: A contact management plugin built with WPZylos.\n * Version: 1.0.0\n * Requires PHP: 8.1\n * Text Domain: contact-manager\n * Domain Path: \u002Fresources\u002Flang\n *\u002F\n\ndeclare(strict_types=1);\n\ndefined('ABSPATH') || exit;\n\nif (file_exists(__DIR__ . '\u002Fvendor\u002Fautoload.php')) {\n    require_once __DIR__ . '\u002Fvendor\u002Fautoload.php';\n}\n\nuse ContactManager\\Core\\PluginContext;\nuse ContactManager\\Lifecycle\\Activator;\nuse ContactManager\\Lifecycle\\Deactivator;\n\n\u002F\u002F Create plugin context - single source of truth for plugin identity\n$context = PluginContext::create([\n    'file'       => __FILE__,\n    'slug'       => 'contact-manager',\n    'prefix'     => 'cm_',\n    'textDomain' => 'contact-manager',\n    'version'    => '1.0.0',\n    'namespace'  => 'ContactManager',\n]);\n\n\u002F\u002F Activation\u002FDeactivation hooks\nregister_activation_hook(__FILE__, static function () use ($context) {\n    Activator::activate($context);\n});\n\nregister_deactivation_hook(__FILE__, static function () use ($context) {\n    Deactivator::deactivate($context);\n});\n\n\u002F\u002F Bootstrap the application on plugins_loaded\nadd_action('plugins_loaded', static function () use ($context) {\n    $bootstrap = require __DIR__ . '\u002Fbootstrap\u002Fapp.php';\n    if (is_callable($bootstrap)) {\n        $bootstrap($context);\n    }\n});\n","php",[761,957,958,967,973,978,983,988,993,998,1003,1008,1012,1034,1039,1062,1067,1093,1108,1114,1119,1130,1140,1150,1155,1161,1181,1196,1209,1223,1236,1250,1264,1270,1275,1281,1309,1323,1329,1334,1356,1369,1374,1379,1385,1408,1428,1442,1448,1454],{"__ignoreMap":759},[764,959,960,964],{"class":766,"line":6},[764,961,963],{"class":962},"szBVR","\u003C?",[764,965,966],{"class":785},"php\n",[764,968,969],{"class":766,"line":29},[764,970,972],{"class":971},"sJ8bj","\u002F**\n",[764,974,975],{"class":766,"line":14},[764,976,977],{"class":971}," * Plugin Name: Contact Manager\n",[764,979,980],{"class":766,"line":18},[764,981,982],{"class":971}," * Description: A contact management plugin built with WPZylos.\n",[764,984,985],{"class":766,"line":70},[764,986,987],{"class":971}," * Version: 1.0.0\n",[764,989,990],{"class":766,"line":74},[764,991,992],{"class":971}," * Requires PHP: 8.1\n",[764,994,995],{"class":766,"line":78},[764,996,997],{"class":971}," * Text Domain: contact-manager\n",[764,999,1000],{"class":766,"line":82},[764,1001,1002],{"class":971}," * Domain Path: \u002Fresources\u002Flang\n",[764,1004,1005],{"class":766,"line":86},[764,1006,1007],{"class":971}," *\u002F\n",[764,1009,1010],{"class":766,"line":90},[764,1011,818],{"emptyLinePlaceholder":817},[764,1013,1015,1018,1022,1025,1028,1031],{"class":766,"line":1014},11,[764,1016,1017],{"class":962},"declare",[764,1019,1021],{"class":1020},"sVt8B","(",[764,1023,1024],{"class":785},"strict_types",[764,1026,1027],{"class":962},"=",[764,1029,1030],{"class":785},"1",[764,1032,1033],{"class":1020},");\n",[764,1035,1037],{"class":766,"line":1036},12,[764,1038,818],{"emptyLinePlaceholder":817},[764,1040,1042,1045,1047,1050,1053,1056,1059],{"class":766,"line":1041},13,[764,1043,1044],{"class":785},"defined",[764,1046,1021],{"class":1020},[764,1048,1049],{"class":773},"'ABSPATH'",[764,1051,1052],{"class":1020},") ",[764,1054,1055],{"class":962},"||",[764,1057,1058],{"class":962}," exit",[764,1060,1061],{"class":1020},";\n",[764,1063,1065],{"class":766,"line":1064},14,[764,1066,818],{"emptyLinePlaceholder":817},[764,1068,1070,1073,1076,1079,1081,1084,1087,1090],{"class":766,"line":1069},15,[764,1071,1072],{"class":962},"if",[764,1074,1075],{"class":1020}," (",[764,1077,1078],{"class":785},"file_exists",[764,1080,1021],{"class":1020},[764,1082,1083],{"class":785},"__DIR__",[764,1085,1086],{"class":962}," .",[764,1088,1089],{"class":773}," '\u002Fvendor\u002Fautoload.php'",[764,1091,1092],{"class":1020},")) {\n",[764,1094,1096,1099,1102,1104,1106],{"class":766,"line":1095},16,[764,1097,1098],{"class":962},"    require_once",[764,1100,1101],{"class":785}," __DIR__",[764,1103,1086],{"class":962},[764,1105,1089],{"class":773},[764,1107,1061],{"class":1020},[764,1109,1111],{"class":766,"line":1110},17,[764,1112,1113],{"class":1020},"}\n",[764,1115,1117],{"class":766,"line":1116},18,[764,1118,818],{"emptyLinePlaceholder":817},[764,1120,1122,1125,1128],{"class":766,"line":1121},19,[764,1123,1124],{"class":962},"use",[764,1126,1127],{"class":785}," ContactManager\\Core\\PluginContext",[764,1129,1061],{"class":1020},[764,1131,1133,1135,1138],{"class":766,"line":1132},20,[764,1134,1124],{"class":962},[764,1136,1137],{"class":785}," ContactManager\\Lifecycle\\Activator",[764,1139,1061],{"class":1020},[764,1141,1143,1145,1148],{"class":766,"line":1142},21,[764,1144,1124],{"class":962},[764,1146,1147],{"class":785}," ContactManager\\Lifecycle\\Deactivator",[764,1149,1061],{"class":1020},[764,1151,1153],{"class":766,"line":1152},22,[764,1154,818],{"emptyLinePlaceholder":817},[764,1156,1158],{"class":766,"line":1157},23,[764,1159,1160],{"class":971},"\u002F\u002F Create plugin context - single source of truth for plugin identity\n",[764,1162,1164,1167,1169,1172,1175,1178],{"class":766,"line":1163},24,[764,1165,1166],{"class":1020},"$context ",[764,1168,1027],{"class":962},[764,1170,1171],{"class":785}," PluginContext",[764,1173,1174],{"class":962},"::",[764,1176,1177],{"class":769},"create",[764,1179,1180],{"class":1020},"([\n",[764,1182,1184,1187,1190,1193],{"class":766,"line":1183},25,[764,1185,1186],{"class":773},"    'file'",[764,1188,1189],{"class":962},"       =>",[764,1191,1192],{"class":785}," __FILE__",[764,1194,1195],{"class":1020},",\n",[764,1197,1199,1202,1204,1207],{"class":766,"line":1198},26,[764,1200,1201],{"class":773},"    'slug'",[764,1203,1189],{"class":962},[764,1205,1206],{"class":773}," 'contact-manager'",[764,1208,1195],{"class":1020},[764,1210,1212,1215,1218,1221],{"class":766,"line":1211},27,[764,1213,1214],{"class":773},"    'prefix'",[764,1216,1217],{"class":962},"     =>",[764,1219,1220],{"class":773}," 'cm_'",[764,1222,1195],{"class":1020},[764,1224,1226,1229,1232,1234],{"class":766,"line":1225},28,[764,1227,1228],{"class":773},"    'textDomain'",[764,1230,1231],{"class":962}," =>",[764,1233,1206],{"class":773},[764,1235,1195],{"class":1020},[764,1237,1239,1242,1245,1248],{"class":766,"line":1238},29,[764,1240,1241],{"class":773},"    'version'",[764,1243,1244],{"class":962},"    =>",[764,1246,1247],{"class":773}," '1.0.0'",[764,1249,1195],{"class":1020},[764,1251,1253,1256,1259,1262],{"class":766,"line":1252},30,[764,1254,1255],{"class":773},"    'namespace'",[764,1257,1258],{"class":962},"  =>",[764,1260,1261],{"class":773}," 'ContactManager'",[764,1263,1195],{"class":1020},[764,1265,1267],{"class":766,"line":1266},31,[764,1268,1269],{"class":1020},"]);\n",[764,1271,1273],{"class":766,"line":1272},32,[764,1274,818],{"emptyLinePlaceholder":817},[764,1276,1278],{"class":766,"line":1277},33,[764,1279,1280],{"class":971},"\u002F\u002F Activation\u002FDeactivation hooks\n",[764,1282,1284,1287,1289,1292,1295,1298,1301,1304,1306],{"class":766,"line":1283},34,[764,1285,1286],{"class":769},"register_activation_hook",[764,1288,1021],{"class":1020},[764,1290,1291],{"class":785},"__FILE__",[764,1293,1294],{"class":1020},", ",[764,1296,1297],{"class":962},"static",[764,1299,1300],{"class":962}," function",[764,1302,1303],{"class":1020}," () ",[764,1305,1124],{"class":962},[764,1307,1308],{"class":1020}," ($context) {\n",[764,1310,1312,1315,1317,1320],{"class":766,"line":1311},35,[764,1313,1314],{"class":785},"    Activator",[764,1316,1174],{"class":962},[764,1318,1319],{"class":769},"activate",[764,1321,1322],{"class":1020},"($context);\n",[764,1324,1326],{"class":766,"line":1325},36,[764,1327,1328],{"class":1020},"});\n",[764,1330,1332],{"class":766,"line":1331},37,[764,1333,818],{"emptyLinePlaceholder":817},[764,1335,1337,1340,1342,1344,1346,1348,1350,1352,1354],{"class":766,"line":1336},38,[764,1338,1339],{"class":769},"register_deactivation_hook",[764,1341,1021],{"class":1020},[764,1343,1291],{"class":785},[764,1345,1294],{"class":1020},[764,1347,1297],{"class":962},[764,1349,1300],{"class":962},[764,1351,1303],{"class":1020},[764,1353,1124],{"class":962},[764,1355,1308],{"class":1020},[764,1357,1359,1362,1364,1367],{"class":766,"line":1358},39,[764,1360,1361],{"class":785},"    Deactivator",[764,1363,1174],{"class":962},[764,1365,1366],{"class":769},"deactivate",[764,1368,1322],{"class":1020},[764,1370,1372],{"class":766,"line":1371},40,[764,1373,1328],{"class":1020},[764,1375,1377],{"class":766,"line":1376},41,[764,1378,818],{"emptyLinePlaceholder":817},[764,1380,1382],{"class":766,"line":1381},42,[764,1383,1384],{"class":971},"\u002F\u002F Bootstrap the application on plugins_loaded\n",[764,1386,1388,1391,1393,1396,1398,1400,1402,1404,1406],{"class":766,"line":1387},43,[764,1389,1390],{"class":769},"add_action",[764,1392,1021],{"class":1020},[764,1394,1395],{"class":773},"'plugins_loaded'",[764,1397,1294],{"class":1020},[764,1399,1297],{"class":962},[764,1401,1300],{"class":962},[764,1403,1303],{"class":1020},[764,1405,1124],{"class":962},[764,1407,1308],{"class":1020},[764,1409,1411,1414,1416,1419,1421,1423,1426],{"class":766,"line":1410},44,[764,1412,1413],{"class":1020},"    $bootstrap ",[764,1415,1027],{"class":962},[764,1417,1418],{"class":962}," require",[764,1420,1101],{"class":785},[764,1422,1086],{"class":962},[764,1424,1425],{"class":773}," '\u002Fbootstrap\u002Fapp.php'",[764,1427,1061],{"class":1020},[764,1429,1431,1434,1436,1439],{"class":766,"line":1430},45,[764,1432,1433],{"class":962},"    if",[764,1435,1075],{"class":1020},[764,1437,1438],{"class":785},"is_callable",[764,1440,1441],{"class":1020},"($bootstrap)) {\n",[764,1443,1445],{"class":766,"line":1444},46,[764,1446,1447],{"class":1020},"        $bootstrap($context);\n",[764,1449,1451],{"class":766,"line":1450},47,[764,1452,1453],{"class":1020},"    }\n",[764,1455,1457],{"class":766,"line":1456},48,[764,1458,1328],{"class":1020},[701,1460,1461],{},[1462,1463,1464],"strong",{},"Key points:",[713,1466,1467,1473,1480,1487],{},[716,1468,1469,1472],{},[761,1470,1471],{},"PluginContext::create([...])"," provides all plugin identity in one place",[716,1474,1475,1476,1479],{},"Activation uses dedicated ",[761,1477,1478],{},"Activator"," class, not inline code",[716,1481,1482,1483,1486],{},"Bootstrap returns a ",[1462,1484,1485],{},"callable"," that receives context and boots internally",[716,1488,1489,1490,1493],{},"Application boots during ",[761,1491,1492],{},"plugins_loaded",", not earlier",[705,1495,1497],{"id":1496},"step-5-understand-the-bootstrap","Step 5: Understand the Bootstrap",[701,1499,1500,1501,1504],{},"The ",[761,1502,1503],{},"bootstrap\u002Fapp.php"," registers framework providers in dependency order:",[754,1506,1508],{"className":953,"code":1507,"language":955,"meta":759,"style":759},"\u003C?php\n\u002F\u002F bootstrap\u002Fapp.php\n\ndeclare(strict_types=1);\n\nuse ContactManager\\Core\\PluginContext;\nuse WPZylos\\Framework\\Core\\Application;\nuse WPZylos\\Framework\\Config\\ConfigServiceProvider;\nuse WPZylos\\Framework\\Hooks\\HookServiceProvider;\nuse WPZylos\\Framework\\Database\\DatabaseServiceProvider;\n\u002F\u002F ... more providers\n\nreturn static function (PluginContext $context): Application {\n    $app = new Application($context);\n\n    \u002F\u002F Phase 1: Foundation (no dependencies)\n    $app->register(new ConfigServiceProvider());       \u002F\u002F Config + .env\n    $app->register(new LoggerServiceProvider());       \u002F\u002F PSR-3 Logger\n    $app->register(new I18nServiceProvider());         \u002F\u002F i18n + translator\n    $app->register(new HookServiceProvider());         \u002F\u002F Hook manager\n    $app->register(new EventServiceProvider());        \u002F\u002F PSR-14 Events\n\n    \u002F\u002F Phase 2: Security (depends on i18n for messages)\n    $app->register(new SecurityServiceProvider());     \u002F\u002F Nonce, Gate, Sanitizer\n\n    \u002F\u002F Phase 3: HTTP (depends on security)\n    $app->register(new HttpServiceProvider());         \u002F\u002F Request, Response\n\n    \u002F\u002F Phase 4: Validation + Views (depend on i18n)\n    $app->register(new ValidationServiceProvider());   \u002F\u002F Validator, FormRequest\n    $app->register(new ViewsServiceProvider());        \u002F\u002F ViewFactory\n\n    \u002F\u002F Phase 5: Database + Model + Migrations\n    $app->register(new DatabaseServiceProvider());     \u002F\u002F Connection, QueryBuilder\n    $app->register(new ModelServiceProvider());        \u002F\u002F ORM Model layer\n    $app->register(new MigrationsServiceProvider());   \u002F\u002F Migrator\n\n    \u002F\u002F Phase 6: Routing (depends on HTTP, container)\n    $app->register(new RoutingServiceProvider());      \u002F\u002F Router, Dispatcher\n\n    \u002F\u002F Phase 7: Queue, Mail, Notification, Scheduler, Assets\n    $app->register(new QueueServiceProvider());\n    $app->register(new MailServiceProvider());\n    $app->register(new NotificationServiceProvider());\n    $app->register(new SchedulerServiceProvider());\n    $app->register(new AssetsServiceProvider());\n\n    \u002F\u002F Phase 8: CLI (only when WP_CLI)\n    if (defined('WP_CLI') && WP_CLI) {\n        $app->register(new WpCliServiceProvider());\n    }\n\n    \u002F\u002F Boot the application\n    $app->boot();\n\n    return $app;\n};\n",[761,1509,1510,1516,1521,1525,1539,1543,1551,1560,1569,1578,1587,1592,1596,1623,1637,1641,1646,1671,1691,1712,1732,1753,1757,1762,1783,1787,1792,1812,1816,1821,1842,1862,1866,1871,1891,1911,1931,1935,1940,1961,1965,1970,1988,2005,2022,2039,2056,2060,2065,2090,2108,2113,2118,2124,2137,2142,2151],{"__ignoreMap":759},[764,1511,1512,1514],{"class":766,"line":6},[764,1513,963],{"class":962},[764,1515,966],{"class":785},[764,1517,1518],{"class":766,"line":29},[764,1519,1520],{"class":971},"\u002F\u002F bootstrap\u002Fapp.php\n",[764,1522,1523],{"class":766,"line":14},[764,1524,818],{"emptyLinePlaceholder":817},[764,1526,1527,1529,1531,1533,1535,1537],{"class":766,"line":18},[764,1528,1017],{"class":962},[764,1530,1021],{"class":1020},[764,1532,1024],{"class":785},[764,1534,1027],{"class":962},[764,1536,1030],{"class":785},[764,1538,1033],{"class":1020},[764,1540,1541],{"class":766,"line":70},[764,1542,818],{"emptyLinePlaceholder":817},[764,1544,1545,1547,1549],{"class":766,"line":74},[764,1546,1124],{"class":962},[764,1548,1127],{"class":785},[764,1550,1061],{"class":1020},[764,1552,1553,1555,1558],{"class":766,"line":78},[764,1554,1124],{"class":962},[764,1556,1557],{"class":785}," WPZylos\\Framework\\Core\\Application",[764,1559,1061],{"class":1020},[764,1561,1562,1564,1567],{"class":766,"line":82},[764,1563,1124],{"class":962},[764,1565,1566],{"class":785}," WPZylos\\Framework\\Config\\ConfigServiceProvider",[764,1568,1061],{"class":1020},[764,1570,1571,1573,1576],{"class":766,"line":86},[764,1572,1124],{"class":962},[764,1574,1575],{"class":785}," WPZylos\\Framework\\Hooks\\HookServiceProvider",[764,1577,1061],{"class":1020},[764,1579,1580,1582,1585],{"class":766,"line":90},[764,1581,1124],{"class":962},[764,1583,1584],{"class":785}," WPZylos\\Framework\\Database\\DatabaseServiceProvider",[764,1586,1061],{"class":1020},[764,1588,1589],{"class":766,"line":1014},[764,1590,1591],{"class":971},"\u002F\u002F ... more providers\n",[764,1593,1594],{"class":766,"line":1036},[764,1595,818],{"emptyLinePlaceholder":817},[764,1597,1598,1601,1604,1606,1608,1611,1614,1617,1620],{"class":766,"line":1041},[764,1599,1600],{"class":962},"return",[764,1602,1603],{"class":962}," static",[764,1605,1300],{"class":962},[764,1607,1075],{"class":1020},[764,1609,1610],{"class":785},"PluginContext",[764,1612,1613],{"class":1020}," $context)",[764,1615,1616],{"class":962},":",[764,1618,1619],{"class":785}," Application",[764,1621,1622],{"class":1020}," {\n",[764,1624,1625,1628,1630,1633,1635],{"class":766,"line":1064},[764,1626,1627],{"class":1020},"    $app ",[764,1629,1027],{"class":962},[764,1631,1632],{"class":962}," new",[764,1634,1619],{"class":785},[764,1636,1322],{"class":1020},[764,1638,1639],{"class":766,"line":1069},[764,1640,818],{"emptyLinePlaceholder":817},[764,1642,1643],{"class":766,"line":1095},[764,1644,1645],{"class":971},"    \u002F\u002F Phase 1: Foundation (no dependencies)\n",[764,1647,1648,1651,1654,1657,1659,1662,1665,1668],{"class":766,"line":1110},[764,1649,1650],{"class":1020},"    $app",[764,1652,1653],{"class":962},"->",[764,1655,1656],{"class":769},"register",[764,1658,1021],{"class":1020},[764,1660,1661],{"class":962},"new",[764,1663,1664],{"class":785}," ConfigServiceProvider",[764,1666,1667],{"class":1020},"());       ",[764,1669,1670],{"class":971},"\u002F\u002F Config + .env\n",[764,1672,1673,1675,1677,1679,1681,1683,1686,1688],{"class":766,"line":1116},[764,1674,1650],{"class":1020},[764,1676,1653],{"class":962},[764,1678,1656],{"class":769},[764,1680,1021],{"class":1020},[764,1682,1661],{"class":962},[764,1684,1685],{"class":785}," LoggerServiceProvider",[764,1687,1667],{"class":1020},[764,1689,1690],{"class":971},"\u002F\u002F PSR-3 Logger\n",[764,1692,1693,1695,1697,1699,1701,1703,1706,1709],{"class":766,"line":1121},[764,1694,1650],{"class":1020},[764,1696,1653],{"class":962},[764,1698,1656],{"class":769},[764,1700,1021],{"class":1020},[764,1702,1661],{"class":962},[764,1704,1705],{"class":785}," I18nServiceProvider",[764,1707,1708],{"class":1020},"());         ",[764,1710,1711],{"class":971},"\u002F\u002F i18n + translator\n",[764,1713,1714,1716,1718,1720,1722,1724,1727,1729],{"class":766,"line":1132},[764,1715,1650],{"class":1020},[764,1717,1653],{"class":962},[764,1719,1656],{"class":769},[764,1721,1021],{"class":1020},[764,1723,1661],{"class":962},[764,1725,1726],{"class":785}," HookServiceProvider",[764,1728,1708],{"class":1020},[764,1730,1731],{"class":971},"\u002F\u002F Hook manager\n",[764,1733,1734,1736,1738,1740,1742,1744,1747,1750],{"class":766,"line":1142},[764,1735,1650],{"class":1020},[764,1737,1653],{"class":962},[764,1739,1656],{"class":769},[764,1741,1021],{"class":1020},[764,1743,1661],{"class":962},[764,1745,1746],{"class":785}," EventServiceProvider",[764,1748,1749],{"class":1020},"());        ",[764,1751,1752],{"class":971},"\u002F\u002F PSR-14 Events\n",[764,1754,1755],{"class":766,"line":1152},[764,1756,818],{"emptyLinePlaceholder":817},[764,1758,1759],{"class":766,"line":1157},[764,1760,1761],{"class":971},"    \u002F\u002F Phase 2: Security (depends on i18n for messages)\n",[764,1763,1764,1766,1768,1770,1772,1774,1777,1780],{"class":766,"line":1163},[764,1765,1650],{"class":1020},[764,1767,1653],{"class":962},[764,1769,1656],{"class":769},[764,1771,1021],{"class":1020},[764,1773,1661],{"class":962},[764,1775,1776],{"class":785}," SecurityServiceProvider",[764,1778,1779],{"class":1020},"());     ",[764,1781,1782],{"class":971},"\u002F\u002F Nonce, Gate, Sanitizer\n",[764,1784,1785],{"class":766,"line":1183},[764,1786,818],{"emptyLinePlaceholder":817},[764,1788,1789],{"class":766,"line":1198},[764,1790,1791],{"class":971},"    \u002F\u002F Phase 3: HTTP (depends on security)\n",[764,1793,1794,1796,1798,1800,1802,1804,1807,1809],{"class":766,"line":1211},[764,1795,1650],{"class":1020},[764,1797,1653],{"class":962},[764,1799,1656],{"class":769},[764,1801,1021],{"class":1020},[764,1803,1661],{"class":962},[764,1805,1806],{"class":785}," HttpServiceProvider",[764,1808,1708],{"class":1020},[764,1810,1811],{"class":971},"\u002F\u002F Request, Response\n",[764,1813,1814],{"class":766,"line":1225},[764,1815,818],{"emptyLinePlaceholder":817},[764,1817,1818],{"class":766,"line":1238},[764,1819,1820],{"class":971},"    \u002F\u002F Phase 4: Validation + Views (depend on i18n)\n",[764,1822,1823,1825,1827,1829,1831,1833,1836,1839],{"class":766,"line":1252},[764,1824,1650],{"class":1020},[764,1826,1653],{"class":962},[764,1828,1656],{"class":769},[764,1830,1021],{"class":1020},[764,1832,1661],{"class":962},[764,1834,1835],{"class":785}," ValidationServiceProvider",[764,1837,1838],{"class":1020},"());   ",[764,1840,1841],{"class":971},"\u002F\u002F Validator, FormRequest\n",[764,1843,1844,1846,1848,1850,1852,1854,1857,1859],{"class":766,"line":1266},[764,1845,1650],{"class":1020},[764,1847,1653],{"class":962},[764,1849,1656],{"class":769},[764,1851,1021],{"class":1020},[764,1853,1661],{"class":962},[764,1855,1856],{"class":785}," ViewsServiceProvider",[764,1858,1749],{"class":1020},[764,1860,1861],{"class":971},"\u002F\u002F ViewFactory\n",[764,1863,1864],{"class":766,"line":1272},[764,1865,818],{"emptyLinePlaceholder":817},[764,1867,1868],{"class":766,"line":1277},[764,1869,1870],{"class":971},"    \u002F\u002F Phase 5: Database + Model + Migrations\n",[764,1872,1873,1875,1877,1879,1881,1883,1886,1888],{"class":766,"line":1283},[764,1874,1650],{"class":1020},[764,1876,1653],{"class":962},[764,1878,1656],{"class":769},[764,1880,1021],{"class":1020},[764,1882,1661],{"class":962},[764,1884,1885],{"class":785}," DatabaseServiceProvider",[764,1887,1779],{"class":1020},[764,1889,1890],{"class":971},"\u002F\u002F Connection, QueryBuilder\n",[764,1892,1893,1895,1897,1899,1901,1903,1906,1908],{"class":766,"line":1311},[764,1894,1650],{"class":1020},[764,1896,1653],{"class":962},[764,1898,1656],{"class":769},[764,1900,1021],{"class":1020},[764,1902,1661],{"class":962},[764,1904,1905],{"class":785}," ModelServiceProvider",[764,1907,1749],{"class":1020},[764,1909,1910],{"class":971},"\u002F\u002F ORM Model layer\n",[764,1912,1913,1915,1917,1919,1921,1923,1926,1928],{"class":766,"line":1325},[764,1914,1650],{"class":1020},[764,1916,1653],{"class":962},[764,1918,1656],{"class":769},[764,1920,1021],{"class":1020},[764,1922,1661],{"class":962},[764,1924,1925],{"class":785}," MigrationsServiceProvider",[764,1927,1838],{"class":1020},[764,1929,1930],{"class":971},"\u002F\u002F Migrator\n",[764,1932,1933],{"class":766,"line":1331},[764,1934,818],{"emptyLinePlaceholder":817},[764,1936,1937],{"class":766,"line":1336},[764,1938,1939],{"class":971},"    \u002F\u002F Phase 6: Routing (depends on HTTP, container)\n",[764,1941,1942,1944,1946,1948,1950,1952,1955,1958],{"class":766,"line":1358},[764,1943,1650],{"class":1020},[764,1945,1653],{"class":962},[764,1947,1656],{"class":769},[764,1949,1021],{"class":1020},[764,1951,1661],{"class":962},[764,1953,1954],{"class":785}," RoutingServiceProvider",[764,1956,1957],{"class":1020},"());      ",[764,1959,1960],{"class":971},"\u002F\u002F Router, Dispatcher\n",[764,1962,1963],{"class":766,"line":1371},[764,1964,818],{"emptyLinePlaceholder":817},[764,1966,1967],{"class":766,"line":1376},[764,1968,1969],{"class":971},"    \u002F\u002F Phase 7: Queue, Mail, Notification, Scheduler, Assets\n",[764,1971,1972,1974,1976,1978,1980,1982,1985],{"class":766,"line":1381},[764,1973,1650],{"class":1020},[764,1975,1653],{"class":962},[764,1977,1656],{"class":769},[764,1979,1021],{"class":1020},[764,1981,1661],{"class":962},[764,1983,1984],{"class":785}," QueueServiceProvider",[764,1986,1987],{"class":1020},"());\n",[764,1989,1990,1992,1994,1996,1998,2000,2003],{"class":766,"line":1387},[764,1991,1650],{"class":1020},[764,1993,1653],{"class":962},[764,1995,1656],{"class":769},[764,1997,1021],{"class":1020},[764,1999,1661],{"class":962},[764,2001,2002],{"class":785}," MailServiceProvider",[764,2004,1987],{"class":1020},[764,2006,2007,2009,2011,2013,2015,2017,2020],{"class":766,"line":1410},[764,2008,1650],{"class":1020},[764,2010,1653],{"class":962},[764,2012,1656],{"class":769},[764,2014,1021],{"class":1020},[764,2016,1661],{"class":962},[764,2018,2019],{"class":785}," NotificationServiceProvider",[764,2021,1987],{"class":1020},[764,2023,2024,2026,2028,2030,2032,2034,2037],{"class":766,"line":1430},[764,2025,1650],{"class":1020},[764,2027,1653],{"class":962},[764,2029,1656],{"class":769},[764,2031,1021],{"class":1020},[764,2033,1661],{"class":962},[764,2035,2036],{"class":785}," SchedulerServiceProvider",[764,2038,1987],{"class":1020},[764,2040,2041,2043,2045,2047,2049,2051,2054],{"class":766,"line":1444},[764,2042,1650],{"class":1020},[764,2044,1653],{"class":962},[764,2046,1656],{"class":769},[764,2048,1021],{"class":1020},[764,2050,1661],{"class":962},[764,2052,2053],{"class":785}," AssetsServiceProvider",[764,2055,1987],{"class":1020},[764,2057,2058],{"class":766,"line":1450},[764,2059,818],{"emptyLinePlaceholder":817},[764,2061,2062],{"class":766,"line":1456},[764,2063,2064],{"class":971},"    \u002F\u002F Phase 8: CLI (only when WP_CLI)\n",[764,2066,2068,2070,2072,2074,2076,2079,2081,2084,2087],{"class":766,"line":2067},49,[764,2069,1433],{"class":962},[764,2071,1075],{"class":1020},[764,2073,1044],{"class":785},[764,2075,1021],{"class":1020},[764,2077,2078],{"class":773},"'WP_CLI'",[764,2080,1052],{"class":1020},[764,2082,2083],{"class":962},"&&",[764,2085,2086],{"class":785}," WP_CLI",[764,2088,2089],{"class":1020},") {\n",[764,2091,2092,2095,2097,2099,2101,2103,2106],{"class":766,"line":22},[764,2093,2094],{"class":1020},"        $app",[764,2096,1653],{"class":962},[764,2098,1656],{"class":769},[764,2100,1021],{"class":1020},[764,2102,1661],{"class":962},[764,2104,2105],{"class":785}," WpCliServiceProvider",[764,2107,1987],{"class":1020},[764,2109,2111],{"class":766,"line":2110},51,[764,2112,1453],{"class":1020},[764,2114,2116],{"class":766,"line":2115},52,[764,2117,818],{"emptyLinePlaceholder":817},[764,2119,2121],{"class":766,"line":2120},53,[764,2122,2123],{"class":971},"    \u002F\u002F Boot the application\n",[764,2125,2127,2129,2131,2134],{"class":766,"line":2126},54,[764,2128,1650],{"class":1020},[764,2130,1653],{"class":962},[764,2132,2133],{"class":769},"boot",[764,2135,2136],{"class":1020},"();\n",[764,2138,2140],{"class":766,"line":2139},55,[764,2141,818],{"emptyLinePlaceholder":817},[764,2143,2145,2148],{"class":766,"line":2144},56,[764,2146,2147],{"class":962},"    return",[764,2149,2150],{"class":1020}," $app;\n",[764,2152,2154],{"class":766,"line":2153},57,[764,2155,2156],{"class":1020},"};\n",[701,2158,2159,2162],{},[1462,2160,2161],{},"Provider registration order matters"," - dependencies must be registered before dependents.",[705,2164,2166],{"id":2165},"step-6-create-service-provider","Step 6: Create Service Provider",[701,2168,2169,2170,1616],{},"Create ",[761,2171,2172],{},"app\u002FProviders\u002FAppServiceProvider.php",[754,2174,2176],{"className":953,"code":2175,"language":955,"meta":759,"style":759},"\u003C?php\n\nnamespace ContactManager\\Providers;\n\nuse WPZylos\\Framework\\Core\\ServiceProvider;\nuse WPZylos\\Framework\\Core\\Contracts\\ApplicationInterface;\nuse WPZylos\\Framework\\Hooks\\HookManager;\nuse ContactManager\\Services\\ContactService;\nuse ContactManager\\Http\\Controllers\\ContactController;\n\nclass AppServiceProvider extends ServiceProvider\n{\n    public function register(ApplicationInterface $app): void\n    {\n        parent::register($app);\n\n        \u002F\u002F Bind application services\n        $app->singleton(ContactService::class);\n    }\n\n    public function boot(ApplicationInterface $app): void\n    {\n        if (!is_admin()) {\n            return;\n        }\n\n        $hooks = $app->make(HookManager::class);\n\n        $hooks->wpAction('admin_menu', function () use ($app) {\n            $this->registerAdminMenu($app);\n        });\n\n        $hooks->wpAction('admin_enqueue_scripts', function (string $hook) use ($app) {\n            $this->enqueueAdminAssets($hook, $app);\n        });\n    }\n\n    private function registerAdminMenu(ApplicationInterface $app): void\n    {\n        $context = $app->context();\n        $controller = $app->make(ContactController::class);\n\n        add_menu_page(\n            __('Contacts', $context->textDomain()),\n            __('Contacts', $context->textDomain()),\n            'manage_options',\n            $context->slug(),\n            [$controller, 'index'],\n            'dashicons-groups',\n            30\n        );\n\n        add_submenu_page(\n            $context->slug(),\n            __('Add New', $context->textDomain()),\n            __('Add New', $context->textDomain()),\n            'manage_options',\n            $context->slug() . '-add',\n            [$controller, 'create']\n        );\n    }\n\n    private function enqueueAdminAssets(string $hook, ApplicationInterface $app): void\n    {\n        if (!str_contains($hook, $app->context()->slug())) {\n            return;\n        }\n\n        wp_enqueue_style(\n            $app->context()->prefix() . 'admin',\n            $app->context()->url('resources\u002Fassets\u002Fadmin.css'),\n            [],\n            $app->context()->version()\n        );\n    }\n}\n",[761,2177,2178,2184,2188,2198,2202,2211,2220,2229,2238,2247,2251,2265,2270,2293,2298,2308,2312,2317,2336,2340,2344,2363,2367,2383,2390,2395,2399,2423,2427,2454,2466,2471,2475,2504,2516,2520,2524,2528,2548,2552,2568,2590,2594,2602,2623,2639,2646,2659,2670,2677,2682,2687,2691,2698,2708,2725,2741,2747,2766,2777,2782,2787,2792,2817,2822,2851,2858,2863,2868,2876,2902,2926,2932,2951,2956,2961],{"__ignoreMap":759},[764,2179,2180,2182],{"class":766,"line":6},[764,2181,963],{"class":962},[764,2183,966],{"class":785},[764,2185,2186],{"class":766,"line":29},[764,2187,818],{"emptyLinePlaceholder":817},[764,2189,2190,2193,2196],{"class":766,"line":14},[764,2191,2192],{"class":962},"namespace",[764,2194,2195],{"class":769}," ContactManager\\Providers",[764,2197,1061],{"class":1020},[764,2199,2200],{"class":766,"line":18},[764,2201,818],{"emptyLinePlaceholder":817},[764,2203,2204,2206,2209],{"class":766,"line":70},[764,2205,1124],{"class":962},[764,2207,2208],{"class":785}," WPZylos\\Framework\\Core\\ServiceProvider",[764,2210,1061],{"class":1020},[764,2212,2213,2215,2218],{"class":766,"line":74},[764,2214,1124],{"class":962},[764,2216,2217],{"class":785}," WPZylos\\Framework\\Core\\Contracts\\ApplicationInterface",[764,2219,1061],{"class":1020},[764,2221,2222,2224,2227],{"class":766,"line":78},[764,2223,1124],{"class":962},[764,2225,2226],{"class":785}," WPZylos\\Framework\\Hooks\\HookManager",[764,2228,1061],{"class":1020},[764,2230,2231,2233,2236],{"class":766,"line":82},[764,2232,1124],{"class":962},[764,2234,2235],{"class":785}," ContactManager\\Services\\ContactService",[764,2237,1061],{"class":1020},[764,2239,2240,2242,2245],{"class":766,"line":86},[764,2241,1124],{"class":962},[764,2243,2244],{"class":785}," ContactManager\\Http\\Controllers\\ContactController",[764,2246,1061],{"class":1020},[764,2248,2249],{"class":766,"line":90},[764,2250,818],{"emptyLinePlaceholder":817},[764,2252,2253,2256,2259,2262],{"class":766,"line":1014},[764,2254,2255],{"class":962},"class",[764,2257,2258],{"class":769}," AppServiceProvider",[764,2260,2261],{"class":962}," extends",[764,2263,2264],{"class":769}," ServiceProvider\n",[764,2266,2267],{"class":766,"line":1036},[764,2268,2269],{"class":1020},"{\n",[764,2271,2272,2275,2277,2280,2282,2285,2288,2290],{"class":766,"line":1041},[764,2273,2274],{"class":962},"    public",[764,2276,1300],{"class":962},[764,2278,2279],{"class":769}," register",[764,2281,1021],{"class":1020},[764,2283,2284],{"class":785},"ApplicationInterface",[764,2286,2287],{"class":1020}," $app)",[764,2289,1616],{"class":962},[764,2291,2292],{"class":962}," void\n",[764,2294,2295],{"class":766,"line":1064},[764,2296,2297],{"class":1020},"    {\n",[764,2299,2300,2303,2305],{"class":766,"line":1069},[764,2301,2302],{"class":962},"        parent::",[764,2304,1656],{"class":769},[764,2306,2307],{"class":1020},"($app);\n",[764,2309,2310],{"class":766,"line":1095},[764,2311,818],{"emptyLinePlaceholder":817},[764,2313,2314],{"class":766,"line":1110},[764,2315,2316],{"class":971},"        \u002F\u002F Bind application services\n",[764,2318,2319,2321,2323,2326,2328,2331,2334],{"class":766,"line":1116},[764,2320,2094],{"class":1020},[764,2322,1653],{"class":962},[764,2324,2325],{"class":769},"singleton",[764,2327,1021],{"class":1020},[764,2329,2330],{"class":785},"ContactService",[764,2332,2333],{"class":962},"::class",[764,2335,1033],{"class":1020},[764,2337,2338],{"class":766,"line":1121},[764,2339,1453],{"class":1020},[764,2341,2342],{"class":766,"line":1132},[764,2343,818],{"emptyLinePlaceholder":817},[764,2345,2346,2348,2350,2353,2355,2357,2359,2361],{"class":766,"line":1142},[764,2347,2274],{"class":962},[764,2349,1300],{"class":962},[764,2351,2352],{"class":769}," boot",[764,2354,1021],{"class":1020},[764,2356,2284],{"class":785},[764,2358,2287],{"class":1020},[764,2360,1616],{"class":962},[764,2362,2292],{"class":962},[764,2364,2365],{"class":766,"line":1152},[764,2366,2297],{"class":1020},[764,2368,2369,2372,2374,2377,2380],{"class":766,"line":1157},[764,2370,2371],{"class":962},"        if",[764,2373,1075],{"class":1020},[764,2375,2376],{"class":962},"!",[764,2378,2379],{"class":769},"is_admin",[764,2381,2382],{"class":1020},"()) {\n",[764,2384,2385,2388],{"class":766,"line":1163},[764,2386,2387],{"class":962},"            return",[764,2389,1061],{"class":1020},[764,2391,2392],{"class":766,"line":1183},[764,2393,2394],{"class":1020},"        }\n",[764,2396,2397],{"class":766,"line":1198},[764,2398,818],{"emptyLinePlaceholder":817},[764,2400,2401,2404,2406,2409,2411,2414,2416,2419,2421],{"class":766,"line":1211},[764,2402,2403],{"class":1020},"        $hooks ",[764,2405,1027],{"class":962},[764,2407,2408],{"class":1020}," $app",[764,2410,1653],{"class":962},[764,2412,2413],{"class":769},"make",[764,2415,1021],{"class":1020},[764,2417,2418],{"class":785},"HookManager",[764,2420,2333],{"class":962},[764,2422,1033],{"class":1020},[764,2424,2425],{"class":766,"line":1225},[764,2426,818],{"emptyLinePlaceholder":817},[764,2428,2429,2432,2434,2437,2439,2442,2444,2447,2449,2451],{"class":766,"line":1238},[764,2430,2431],{"class":1020},"        $hooks",[764,2433,1653],{"class":962},[764,2435,2436],{"class":769},"wpAction",[764,2438,1021],{"class":1020},[764,2440,2441],{"class":773},"'admin_menu'",[764,2443,1294],{"class":1020},[764,2445,2446],{"class":962},"function",[764,2448,1303],{"class":1020},[764,2450,1124],{"class":962},[764,2452,2453],{"class":1020}," ($app) {\n",[764,2455,2456,2459,2461,2464],{"class":766,"line":1252},[764,2457,2458],{"class":785},"            $this",[764,2460,1653],{"class":962},[764,2462,2463],{"class":769},"registerAdminMenu",[764,2465,2307],{"class":1020},[764,2467,2468],{"class":766,"line":1266},[764,2469,2470],{"class":1020},"        });\n",[764,2472,2473],{"class":766,"line":1272},[764,2474,818],{"emptyLinePlaceholder":817},[764,2476,2477,2479,2481,2483,2485,2488,2490,2492,2494,2497,2500,2502],{"class":766,"line":1277},[764,2478,2431],{"class":1020},[764,2480,1653],{"class":962},[764,2482,2436],{"class":769},[764,2484,1021],{"class":1020},[764,2486,2487],{"class":773},"'admin_enqueue_scripts'",[764,2489,1294],{"class":1020},[764,2491,2446],{"class":962},[764,2493,1075],{"class":1020},[764,2495,2496],{"class":962},"string",[764,2498,2499],{"class":1020}," $hook) ",[764,2501,1124],{"class":962},[764,2503,2453],{"class":1020},[764,2505,2506,2508,2510,2513],{"class":766,"line":1283},[764,2507,2458],{"class":785},[764,2509,1653],{"class":962},[764,2511,2512],{"class":769},"enqueueAdminAssets",[764,2514,2515],{"class":1020},"($hook, $app);\n",[764,2517,2518],{"class":766,"line":1311},[764,2519,2470],{"class":1020},[764,2521,2522],{"class":766,"line":1325},[764,2523,1453],{"class":1020},[764,2525,2526],{"class":766,"line":1331},[764,2527,818],{"emptyLinePlaceholder":817},[764,2529,2530,2533,2535,2538,2540,2542,2544,2546],{"class":766,"line":1336},[764,2531,2532],{"class":962},"    private",[764,2534,1300],{"class":962},[764,2536,2537],{"class":769}," registerAdminMenu",[764,2539,1021],{"class":1020},[764,2541,2284],{"class":785},[764,2543,2287],{"class":1020},[764,2545,1616],{"class":962},[764,2547,2292],{"class":962},[764,2549,2550],{"class":766,"line":1358},[764,2551,2297],{"class":1020},[764,2553,2554,2557,2559,2561,2563,2566],{"class":766,"line":1371},[764,2555,2556],{"class":1020},"        $context ",[764,2558,1027],{"class":962},[764,2560,2408],{"class":1020},[764,2562,1653],{"class":962},[764,2564,2565],{"class":769},"context",[764,2567,2136],{"class":1020},[764,2569,2570,2573,2575,2577,2579,2581,2583,2586,2588],{"class":766,"line":1376},[764,2571,2572],{"class":1020},"        $controller ",[764,2574,1027],{"class":962},[764,2576,2408],{"class":1020},[764,2578,1653],{"class":962},[764,2580,2413],{"class":769},[764,2582,1021],{"class":1020},[764,2584,2585],{"class":785},"ContactController",[764,2587,2333],{"class":962},[764,2589,1033],{"class":1020},[764,2591,2592],{"class":766,"line":1381},[764,2593,818],{"emptyLinePlaceholder":817},[764,2595,2596,2599],{"class":766,"line":1387},[764,2597,2598],{"class":769},"        add_menu_page",[764,2600,2601],{"class":1020},"(\n",[764,2603,2604,2607,2609,2612,2615,2617,2620],{"class":766,"line":1410},[764,2605,2606],{"class":769},"            __",[764,2608,1021],{"class":1020},[764,2610,2611],{"class":773},"'Contacts'",[764,2613,2614],{"class":1020},", $context",[764,2616,1653],{"class":962},[764,2618,2619],{"class":769},"textDomain",[764,2621,2622],{"class":1020},"()),\n",[764,2624,2625,2627,2629,2631,2633,2635,2637],{"class":766,"line":1430},[764,2626,2606],{"class":769},[764,2628,1021],{"class":1020},[764,2630,2611],{"class":773},[764,2632,2614],{"class":1020},[764,2634,1653],{"class":962},[764,2636,2619],{"class":769},[764,2638,2622],{"class":1020},[764,2640,2641,2644],{"class":766,"line":1444},[764,2642,2643],{"class":773},"            'manage_options'",[764,2645,1195],{"class":1020},[764,2647,2648,2651,2653,2656],{"class":766,"line":1450},[764,2649,2650],{"class":1020},"            $context",[764,2652,1653],{"class":962},[764,2654,2655],{"class":769},"slug",[764,2657,2658],{"class":1020},"(),\n",[764,2660,2661,2664,2667],{"class":766,"line":1456},[764,2662,2663],{"class":1020},"            [$controller, ",[764,2665,2666],{"class":773},"'index'",[764,2668,2669],{"class":1020},"],\n",[764,2671,2672,2675],{"class":766,"line":2067},[764,2673,2674],{"class":773},"            'dashicons-groups'",[764,2676,1195],{"class":1020},[764,2678,2679],{"class":766,"line":22},[764,2680,2681],{"class":785},"            30\n",[764,2683,2684],{"class":766,"line":2110},[764,2685,2686],{"class":1020},"        );\n",[764,2688,2689],{"class":766,"line":2115},[764,2690,818],{"emptyLinePlaceholder":817},[764,2692,2693,2696],{"class":766,"line":2120},[764,2694,2695],{"class":769},"        add_submenu_page",[764,2697,2601],{"class":1020},[764,2699,2700,2702,2704,2706],{"class":766,"line":2126},[764,2701,2650],{"class":1020},[764,2703,1653],{"class":962},[764,2705,2655],{"class":769},[764,2707,2658],{"class":1020},[764,2709,2710,2712,2714,2717,2719,2721,2723],{"class":766,"line":2139},[764,2711,2606],{"class":769},[764,2713,1021],{"class":1020},[764,2715,2716],{"class":773},"'Add New'",[764,2718,2614],{"class":1020},[764,2720,1653],{"class":962},[764,2722,2619],{"class":769},[764,2724,2622],{"class":1020},[764,2726,2727,2729,2731,2733,2735,2737,2739],{"class":766,"line":2144},[764,2728,2606],{"class":769},[764,2730,1021],{"class":1020},[764,2732,2716],{"class":773},[764,2734,2614],{"class":1020},[764,2736,1653],{"class":962},[764,2738,2619],{"class":769},[764,2740,2622],{"class":1020},[764,2742,2743,2745],{"class":766,"line":2153},[764,2744,2643],{"class":773},[764,2746,1195],{"class":1020},[764,2748,2750,2752,2754,2756,2759,2761,2764],{"class":766,"line":2749},58,[764,2751,2650],{"class":1020},[764,2753,1653],{"class":962},[764,2755,2655],{"class":769},[764,2757,2758],{"class":1020},"() ",[764,2760,927],{"class":962},[764,2762,2763],{"class":773}," '-add'",[764,2765,1195],{"class":1020},[764,2767,2769,2771,2774],{"class":766,"line":2768},59,[764,2770,2663],{"class":1020},[764,2772,2773],{"class":773},"'create'",[764,2775,2776],{"class":1020},"]\n",[764,2778,2780],{"class":766,"line":2779},60,[764,2781,2686],{"class":1020},[764,2783,2785],{"class":766,"line":2784},61,[764,2786,1453],{"class":1020},[764,2788,2790],{"class":766,"line":2789},62,[764,2791,818],{"emptyLinePlaceholder":817},[764,2793,2795,2797,2799,2802,2804,2806,2809,2811,2813,2815],{"class":766,"line":2794},63,[764,2796,2532],{"class":962},[764,2798,1300],{"class":962},[764,2800,2801],{"class":769}," enqueueAdminAssets",[764,2803,1021],{"class":1020},[764,2805,2496],{"class":962},[764,2807,2808],{"class":1020}," $hook, ",[764,2810,2284],{"class":785},[764,2812,2287],{"class":1020},[764,2814,1616],{"class":962},[764,2816,2292],{"class":962},[764,2818,2820],{"class":766,"line":2819},64,[764,2821,2297],{"class":1020},[764,2823,2825,2827,2829,2831,2834,2837,2839,2841,2844,2846,2848],{"class":766,"line":2824},65,[764,2826,2371],{"class":962},[764,2828,1075],{"class":1020},[764,2830,2376],{"class":962},[764,2832,2833],{"class":785},"str_contains",[764,2835,2836],{"class":1020},"($hook, $app",[764,2838,1653],{"class":962},[764,2840,2565],{"class":769},[764,2842,2843],{"class":1020},"()",[764,2845,1653],{"class":962},[764,2847,2655],{"class":769},[764,2849,2850],{"class":1020},"())) {\n",[764,2852,2854,2856],{"class":766,"line":2853},66,[764,2855,2387],{"class":962},[764,2857,1061],{"class":1020},[764,2859,2861],{"class":766,"line":2860},67,[764,2862,2394],{"class":1020},[764,2864,2866],{"class":766,"line":2865},68,[764,2867,818],{"emptyLinePlaceholder":817},[764,2869,2871,2874],{"class":766,"line":2870},69,[764,2872,2873],{"class":769},"        wp_enqueue_style",[764,2875,2601],{"class":1020},[764,2877,2879,2882,2884,2886,2888,2890,2893,2895,2897,2900],{"class":766,"line":2878},70,[764,2880,2881],{"class":1020},"            $app",[764,2883,1653],{"class":962},[764,2885,2565],{"class":769},[764,2887,2843],{"class":1020},[764,2889,1653],{"class":962},[764,2891,2892],{"class":769},"prefix",[764,2894,2758],{"class":1020},[764,2896,927],{"class":962},[764,2898,2899],{"class":773}," 'admin'",[764,2901,1195],{"class":1020},[764,2903,2905,2907,2909,2911,2913,2915,2918,2920,2923],{"class":766,"line":2904},71,[764,2906,2881],{"class":1020},[764,2908,1653],{"class":962},[764,2910,2565],{"class":769},[764,2912,2843],{"class":1020},[764,2914,1653],{"class":962},[764,2916,2917],{"class":769},"url",[764,2919,1021],{"class":1020},[764,2921,2922],{"class":773},"'resources\u002Fassets\u002Fadmin.css'",[764,2924,2925],{"class":1020},"),\n",[764,2927,2929],{"class":766,"line":2928},72,[764,2930,2931],{"class":1020},"            [],\n",[764,2933,2935,2937,2939,2941,2943,2945,2948],{"class":766,"line":2934},73,[764,2936,2881],{"class":1020},[764,2938,1653],{"class":962},[764,2940,2565],{"class":769},[764,2942,2843],{"class":1020},[764,2944,1653],{"class":962},[764,2946,2947],{"class":769},"version",[764,2949,2950],{"class":1020},"()\n",[764,2952,2954],{"class":766,"line":2953},74,[764,2955,2686],{"class":1020},[764,2957,2959],{"class":766,"line":2958},75,[764,2960,1453],{"class":1020},[764,2962,2964],{"class":766,"line":2963},76,[764,2965,1113],{"class":1020},[701,2967,2968,2969,1616],{},"Then register it in ",[761,2970,1503],{},[754,2972,2974],{"className":953,"code":2973,"language":955,"meta":759,"style":759},"\u002F\u002F After Phase 6: Routing\n$app->register(new \\ContactManager\\Providers\\AppServiceProvider());\n",[761,2975,2976,2981],{"__ignoreMap":759},[764,2977,2978],{"class":766,"line":6},[764,2979,2980],{"class":971},"\u002F\u002F After Phase 6: Routing\n",[764,2982,2983,2986,2988,2990,2992,2994,2997],{"class":766,"line":29},[764,2984,2985],{"class":1020},"$app",[764,2987,1653],{"class":962},[764,2989,1656],{"class":769},[764,2991,1021],{"class":1020},[764,2993,1661],{"class":962},[764,2995,2996],{"class":785}," \\ContactManager\\Providers\\AppServiceProvider",[764,2998,1987],{"class":1020},[705,3000,3002],{"id":3001},"step-7-create-contact-service","Step 7: Create Contact Service",[701,3004,2169,3005,1616],{},[761,3006,3007],{},"app\u002FServices\u002FContactService.php",[754,3009,3011],{"className":953,"code":3010,"language":955,"meta":759,"style":759},"\u003C?php\n\nnamespace ContactManager\\Services;\n\nuse WPZylos\\Framework\\Database\\Connection;\nuse WPZylos\\Framework\\Core\\Contracts\\ContextInterface;\n\nclass ContactService\n{\n    private string $table;\n\n    public function __construct(\n        private Connection $db,\n        private ContextInterface $context\n    ) {\n        global $wpdb;\n        $this->table = $wpdb->prefix . $this->context->prefix() . 'contacts';\n    }\n\n    public function all(): array\n    {\n        global $wpdb;\n        return $wpdb->get_results(\n            \"SELECT * FROM {$this->table} ORDER BY created_at DESC\"\n        );\n    }\n\n    public function find(int $id): ?object\n    {\n        global $wpdb;\n        return $wpdb->get_row(\n            $wpdb->prepare(\"SELECT * FROM {$this->table} WHERE id = %d\", $id)\n        );\n    }\n\n    public function create(array $data): int\n    {\n        global $wpdb;\n        $wpdb->insert($this->table, $data);\n        return (int) $wpdb->insert_id;\n    }\n\n    public function update(int $id, array $data): int\n    {\n        global $wpdb;\n        return (int) $wpdb->update($this->table, $data, ['id' => $id]);\n    }\n\n    public function delete(int $id): int\n    {\n        global $wpdb;\n        return (int) $wpdb->delete($this->table, ['id' => $id]);\n    }\n}\n",[761,3012,3013,3019,3023,3032,3036,3045,3054,3058,3065,3069,3079,3083,3094,3105,3115,3120,3128,3170,3174,3178,3194,3198,3204,3218,3257,3261,3265,3269,3291,3295,3301,3314,3359,3363,3367,3371,3393,3397,3403,3422,3438,3442,3446,3470,3474,3480,3512,3516,3520,3539,3543,3549,3579,3583],{"__ignoreMap":759},[764,3014,3015,3017],{"class":766,"line":6},[764,3016,963],{"class":962},[764,3018,966],{"class":785},[764,3020,3021],{"class":766,"line":29},[764,3022,818],{"emptyLinePlaceholder":817},[764,3024,3025,3027,3030],{"class":766,"line":14},[764,3026,2192],{"class":962},[764,3028,3029],{"class":769}," ContactManager\\Services",[764,3031,1061],{"class":1020},[764,3033,3034],{"class":766,"line":18},[764,3035,818],{"emptyLinePlaceholder":817},[764,3037,3038,3040,3043],{"class":766,"line":70},[764,3039,1124],{"class":962},[764,3041,3042],{"class":785}," WPZylos\\Framework\\Database\\Connection",[764,3044,1061],{"class":1020},[764,3046,3047,3049,3052],{"class":766,"line":74},[764,3048,1124],{"class":962},[764,3050,3051],{"class":785}," WPZylos\\Framework\\Core\\Contracts\\ContextInterface",[764,3053,1061],{"class":1020},[764,3055,3056],{"class":766,"line":78},[764,3057,818],{"emptyLinePlaceholder":817},[764,3059,3060,3062],{"class":766,"line":82},[764,3061,2255],{"class":962},[764,3063,3064],{"class":769}," ContactService\n",[764,3066,3067],{"class":766,"line":86},[764,3068,2269],{"class":1020},[764,3070,3071,3073,3076],{"class":766,"line":90},[764,3072,2532],{"class":962},[764,3074,3075],{"class":962}," string",[764,3077,3078],{"class":1020}," $table;\n",[764,3080,3081],{"class":766,"line":1014},[764,3082,818],{"emptyLinePlaceholder":817},[764,3084,3085,3087,3089,3092],{"class":766,"line":1036},[764,3086,2274],{"class":962},[764,3088,1300],{"class":962},[764,3090,3091],{"class":785}," __construct",[764,3093,2601],{"class":1020},[764,3095,3096,3099,3102],{"class":766,"line":1041},[764,3097,3098],{"class":962},"        private",[764,3100,3101],{"class":785}," Connection",[764,3103,3104],{"class":1020}," $db,\n",[764,3106,3107,3109,3112],{"class":766,"line":1064},[764,3108,3098],{"class":962},[764,3110,3111],{"class":785}," ContextInterface",[764,3113,3114],{"class":1020}," $context\n",[764,3116,3117],{"class":766,"line":1069},[764,3118,3119],{"class":1020},"    ) {\n",[764,3121,3122,3125],{"class":766,"line":1095},[764,3123,3124],{"class":962},"        global",[764,3126,3127],{"class":1020}," $wpdb;\n",[764,3129,3130,3133,3135,3138,3140,3143,3145,3148,3150,3153,3155,3157,3159,3161,3163,3165,3168],{"class":766,"line":1110},[764,3131,3132],{"class":785},"        $this",[764,3134,1653],{"class":962},[764,3136,3137],{"class":1020},"table ",[764,3139,1027],{"class":962},[764,3141,3142],{"class":1020}," $wpdb",[764,3144,1653],{"class":962},[764,3146,3147],{"class":1020},"prefix ",[764,3149,927],{"class":962},[764,3151,3152],{"class":785}," $this",[764,3154,1653],{"class":962},[764,3156,2565],{"class":1020},[764,3158,1653],{"class":962},[764,3160,2892],{"class":769},[764,3162,2758],{"class":1020},[764,3164,927],{"class":962},[764,3166,3167],{"class":773}," 'contacts'",[764,3169,1061],{"class":1020},[764,3171,3172],{"class":766,"line":1116},[764,3173,1453],{"class":1020},[764,3175,3176],{"class":766,"line":1121},[764,3177,818],{"emptyLinePlaceholder":817},[764,3179,3180,3182,3184,3187,3189,3191],{"class":766,"line":1132},[764,3181,2274],{"class":962},[764,3183,1300],{"class":962},[764,3185,3186],{"class":769}," all",[764,3188,2843],{"class":1020},[764,3190,1616],{"class":962},[764,3192,3193],{"class":962}," array\n",[764,3195,3196],{"class":766,"line":1142},[764,3197,2297],{"class":1020},[764,3199,3200,3202],{"class":766,"line":1152},[764,3201,3124],{"class":962},[764,3203,3127],{"class":1020},[764,3205,3206,3209,3211,3213,3216],{"class":766,"line":1157},[764,3207,3208],{"class":962},"        return",[764,3210,3142],{"class":1020},[764,3212,1653],{"class":962},[764,3214,3215],{"class":769},"get_results",[764,3217,2601],{"class":1020},[764,3219,3220,3223,3226,3229,3232,3235,3238,3240,3242,3245,3248,3251,3254],{"class":766,"line":1163},[764,3221,3222],{"class":773},"            \"",[764,3224,3225],{"class":962},"SELECT",[764,3227,3228],{"class":962}," *",[764,3230,3231],{"class":962}," FROM",[764,3233,3234],{"class":773}," {",[764,3236,3237],{"class":785},"$this",[764,3239,1653],{"class":962},[764,3241,833],{"class":1020},[764,3243,3244],{"class":773},"} ",[764,3246,3247],{"class":962},"ORDER BY",[764,3249,3250],{"class":773}," created_at ",[764,3252,3253],{"class":962},"DESC",[764,3255,3256],{"class":773},"\"\n",[764,3258,3259],{"class":766,"line":1183},[764,3260,2686],{"class":1020},[764,3262,3263],{"class":766,"line":1198},[764,3264,1453],{"class":1020},[764,3266,3267],{"class":766,"line":1211},[764,3268,818],{"emptyLinePlaceholder":817},[764,3270,3271,3273,3275,3278,3280,3283,3286,3288],{"class":766,"line":1225},[764,3272,2274],{"class":962},[764,3274,1300],{"class":962},[764,3276,3277],{"class":769}," find",[764,3279,1021],{"class":1020},[764,3281,3282],{"class":962},"int",[764,3284,3285],{"class":1020}," $id)",[764,3287,1616],{"class":962},[764,3289,3290],{"class":962}," ?object\n",[764,3292,3293],{"class":766,"line":1238},[764,3294,2297],{"class":1020},[764,3296,3297,3299],{"class":766,"line":1252},[764,3298,3124],{"class":962},[764,3300,3127],{"class":1020},[764,3302,3303,3305,3307,3309,3312],{"class":766,"line":1266},[764,3304,3208],{"class":962},[764,3306,3142],{"class":1020},[764,3308,1653],{"class":962},[764,3310,3311],{"class":769},"get_row",[764,3313,2601],{"class":1020},[764,3315,3316,3319,3321,3324,3326,3329,3331,3333,3335,3337,3339,3341,3343,3345,3348,3351,3353,3356],{"class":766,"line":1272},[764,3317,3318],{"class":1020},"            $wpdb",[764,3320,1653],{"class":962},[764,3322,3323],{"class":769},"prepare",[764,3325,1021],{"class":1020},[764,3327,3328],{"class":773},"\"",[764,3330,3225],{"class":962},[764,3332,3228],{"class":962},[764,3334,3231],{"class":962},[764,3336,3234],{"class":773},[764,3338,3237],{"class":785},[764,3340,1653],{"class":962},[764,3342,833],{"class":1020},[764,3344,3244],{"class":773},[764,3346,3347],{"class":962},"WHERE",[764,3349,3350],{"class":773}," id ",[764,3352,1027],{"class":962},[764,3354,3355],{"class":773}," %d\"",[764,3357,3358],{"class":1020},", $id)\n",[764,3360,3361],{"class":766,"line":1277},[764,3362,2686],{"class":1020},[764,3364,3365],{"class":766,"line":1283},[764,3366,1453],{"class":1020},[764,3368,3369],{"class":766,"line":1311},[764,3370,818],{"emptyLinePlaceholder":817},[764,3372,3373,3375,3377,3380,3382,3385,3388,3390],{"class":766,"line":1325},[764,3374,2274],{"class":962},[764,3376,1300],{"class":962},[764,3378,3379],{"class":769}," create",[764,3381,1021],{"class":1020},[764,3383,3384],{"class":962},"array",[764,3386,3387],{"class":1020}," $data)",[764,3389,1616],{"class":962},[764,3391,3392],{"class":962}," int\n",[764,3394,3395],{"class":766,"line":1331},[764,3396,2297],{"class":1020},[764,3398,3399,3401],{"class":766,"line":1336},[764,3400,3124],{"class":962},[764,3402,3127],{"class":1020},[764,3404,3405,3408,3410,3413,3415,3417,3419],{"class":766,"line":1358},[764,3406,3407],{"class":1020},"        $wpdb",[764,3409,1653],{"class":962},[764,3411,3412],{"class":769},"insert",[764,3414,1021],{"class":1020},[764,3416,3237],{"class":785},[764,3418,1653],{"class":962},[764,3420,3421],{"class":1020},"table, $data);\n",[764,3423,3424,3426,3428,3430,3433,3435],{"class":766,"line":1371},[764,3425,3208],{"class":962},[764,3427,1075],{"class":1020},[764,3429,3282],{"class":962},[764,3431,3432],{"class":1020},") $wpdb",[764,3434,1653],{"class":962},[764,3436,3437],{"class":1020},"insert_id;\n",[764,3439,3440],{"class":766,"line":1376},[764,3441,1453],{"class":1020},[764,3443,3444],{"class":766,"line":1381},[764,3445,818],{"emptyLinePlaceholder":817},[764,3447,3448,3450,3452,3455,3457,3459,3462,3464,3466,3468],{"class":766,"line":1387},[764,3449,2274],{"class":962},[764,3451,1300],{"class":962},[764,3453,3454],{"class":769}," update",[764,3456,1021],{"class":1020},[764,3458,3282],{"class":962},[764,3460,3461],{"class":1020}," $id, ",[764,3463,3384],{"class":962},[764,3465,3387],{"class":1020},[764,3467,1616],{"class":962},[764,3469,3392],{"class":962},[764,3471,3472],{"class":766,"line":1410},[764,3473,2297],{"class":1020},[764,3475,3476,3478],{"class":766,"line":1430},[764,3477,3124],{"class":962},[764,3479,3127],{"class":1020},[764,3481,3482,3484,3486,3488,3490,3492,3495,3497,3499,3501,3504,3507,3509],{"class":766,"line":1444},[764,3483,3208],{"class":962},[764,3485,1075],{"class":1020},[764,3487,3282],{"class":962},[764,3489,3432],{"class":1020},[764,3491,1653],{"class":962},[764,3493,3494],{"class":769},"update",[764,3496,1021],{"class":1020},[764,3498,3237],{"class":785},[764,3500,1653],{"class":962},[764,3502,3503],{"class":1020},"table, $data, [",[764,3505,3506],{"class":773},"'id'",[764,3508,1231],{"class":962},[764,3510,3511],{"class":1020}," $id]);\n",[764,3513,3514],{"class":766,"line":1450},[764,3515,1453],{"class":1020},[764,3517,3518],{"class":766,"line":1456},[764,3519,818],{"emptyLinePlaceholder":817},[764,3521,3522,3524,3526,3529,3531,3533,3535,3537],{"class":766,"line":2067},[764,3523,2274],{"class":962},[764,3525,1300],{"class":962},[764,3527,3528],{"class":769}," delete",[764,3530,1021],{"class":1020},[764,3532,3282],{"class":962},[764,3534,3285],{"class":1020},[764,3536,1616],{"class":962},[764,3538,3392],{"class":962},[764,3540,3541],{"class":766,"line":22},[764,3542,2297],{"class":1020},[764,3544,3545,3547],{"class":766,"line":2110},[764,3546,3124],{"class":962},[764,3548,3127],{"class":1020},[764,3550,3551,3553,3555,3557,3559,3561,3564,3566,3568,3570,3573,3575,3577],{"class":766,"line":2115},[764,3552,3208],{"class":962},[764,3554,1075],{"class":1020},[764,3556,3282],{"class":962},[764,3558,3432],{"class":1020},[764,3560,1653],{"class":962},[764,3562,3563],{"class":769},"delete",[764,3565,1021],{"class":1020},[764,3567,3237],{"class":785},[764,3569,1653],{"class":962},[764,3571,3572],{"class":1020},"table, [",[764,3574,3506],{"class":773},[764,3576,1231],{"class":962},[764,3578,3511],{"class":1020},[764,3580,3581],{"class":766,"line":2120},[764,3582,1453],{"class":1020},[764,3584,3585],{"class":766,"line":2126},[764,3586,1113],{"class":1020},[705,3588,3590],{"id":3589},"step-8-create-controller","Step 8: Create Controller",[701,3592,2169,3593,1616],{},[761,3594,3595],{},"app\u002FHttp\u002FControllers\u002FContactController.php",[754,3597,3599],{"className":953,"code":3598,"language":955,"meta":759,"style":759},"\u003C?php\n\nnamespace ContactManager\\Http\\Controllers;\n\nuse WPZylos\\Framework\\Views\\ViewFactory;\nuse WPZylos\\Framework\\Security\\Nonce;\nuse WPZylos\\Framework\\Security\\Sanitizer;\nuse WPZylos\\Framework\\Validation\\Validator;\nuse WPZylos\\Framework\\Core\\Contracts\\ContextInterface;\nuse ContactManager\\Services\\ContactService;\n\nclass ContactController\n{\n    public function __construct(\n        private ViewFactory $view,\n        private ContactService $contacts,\n        private Nonce $nonce,\n        private Sanitizer $sanitizer,\n        private ContextInterface $context\n    ) {\n    }\n\n    public function index(): void\n    {\n        $contacts = $this->contacts->all();\n\n        echo $this->view->render('admin\u002Findex', [\n            'title'       => __('Contacts', $this->context->textDomain()),\n            'contacts'    => $contacts,\n            'deleteNonce' => $this->nonce->create('delete_contact'),\n        ]);\n    }\n\n    public function create(): void\n    {\n        echo $this->view->render('admin\u002Fcreate', [\n            'title' => __('Add Contact', $this->context->textDomain()),\n            'nonce' => $this->nonce->create('create_contact'),\n        ]);\n    }\n\n    public function store(): void\n    {\n        if (!$this->nonce->verify($_POST['_nonce'] ?? '', 'create_contact')) {\n            wp_die(__('Invalid nonce', $this->context->textDomain()));\n        }\n\n        if (!current_user_can('manage_options')) {\n            wp_die(__('Unauthorized', $this->context->textDomain()));\n        }\n\n        $validator = new Validator();\n        $result = $validator->validate($_POST, [\n            'name'  => 'required|string|max:255',\n            'email' => 'required|email',\n            'phone' => 'nullable|string|max:50',\n            'notes' => 'nullable|string',\n        ]);\n\n        if ($result->fails()) {\n            set_transient(\n                $this->context->prefix() . 'form_errors',\n                $result->errors(),\n                30\n            );\n            wp_redirect(admin_url('admin.php?page=' . $this->context->slug() . '-add&error=1'));\n            exit;\n        }\n\n        $this->contacts->create([\n            'name'  => $this->sanitizer->text($_POST['name']),\n            'email' => $this->sanitizer->email($_POST['email']),\n            'phone' => $this->sanitizer->text($_POST['phone'] ?? ''),\n            'notes' => $this->sanitizer->textarea($_POST['notes'] ?? ''),\n        ]);\n\n        wp_redirect(admin_url('admin.php?page=' . $this->context->slug() . '&saved=1'));\n        exit;\n    }\n}\n",[761,3600,3601,3607,3611,3620,3624,3633,3642,3651,3660,3668,3676,3680,3687,3691,3701,3711,3721,3731,3741,3749,3753,3757,3761,3776,3780,3801,3805,3830,3858,3867,3892,3897,3901,3905,3919,3923,3944,3971,3995,3999,4003,4007,4022,4026,4066,4096,4100,4104,4122,4149,4153,4157,4171,4189,4201,4213,4225,4237,4241,4245,4259,4266,4288,4300,4305,4310,4347,4354,4358,4362,4376,4401,4425,4454,4484,4488,4492,4527,4535,4540],{"__ignoreMap":759},[764,3602,3603,3605],{"class":766,"line":6},[764,3604,963],{"class":962},[764,3606,966],{"class":785},[764,3608,3609],{"class":766,"line":29},[764,3610,818],{"emptyLinePlaceholder":817},[764,3612,3613,3615,3618],{"class":766,"line":14},[764,3614,2192],{"class":962},[764,3616,3617],{"class":769}," ContactManager\\Http\\Controllers",[764,3619,1061],{"class":1020},[764,3621,3622],{"class":766,"line":18},[764,3623,818],{"emptyLinePlaceholder":817},[764,3625,3626,3628,3631],{"class":766,"line":70},[764,3627,1124],{"class":962},[764,3629,3630],{"class":785}," WPZylos\\Framework\\Views\\ViewFactory",[764,3632,1061],{"class":1020},[764,3634,3635,3637,3640],{"class":766,"line":74},[764,3636,1124],{"class":962},[764,3638,3639],{"class":785}," WPZylos\\Framework\\Security\\Nonce",[764,3641,1061],{"class":1020},[764,3643,3644,3646,3649],{"class":766,"line":78},[764,3645,1124],{"class":962},[764,3647,3648],{"class":785}," WPZylos\\Framework\\Security\\Sanitizer",[764,3650,1061],{"class":1020},[764,3652,3653,3655,3658],{"class":766,"line":82},[764,3654,1124],{"class":962},[764,3656,3657],{"class":785}," WPZylos\\Framework\\Validation\\Validator",[764,3659,1061],{"class":1020},[764,3661,3662,3664,3666],{"class":766,"line":86},[764,3663,1124],{"class":962},[764,3665,3051],{"class":785},[764,3667,1061],{"class":1020},[764,3669,3670,3672,3674],{"class":766,"line":90},[764,3671,1124],{"class":962},[764,3673,2235],{"class":785},[764,3675,1061],{"class":1020},[764,3677,3678],{"class":766,"line":1014},[764,3679,818],{"emptyLinePlaceholder":817},[764,3681,3682,3684],{"class":766,"line":1036},[764,3683,2255],{"class":962},[764,3685,3686],{"class":769}," ContactController\n",[764,3688,3689],{"class":766,"line":1041},[764,3690,2269],{"class":1020},[764,3692,3693,3695,3697,3699],{"class":766,"line":1064},[764,3694,2274],{"class":962},[764,3696,1300],{"class":962},[764,3698,3091],{"class":785},[764,3700,2601],{"class":1020},[764,3702,3703,3705,3708],{"class":766,"line":1069},[764,3704,3098],{"class":962},[764,3706,3707],{"class":785}," ViewFactory",[764,3709,3710],{"class":1020}," $view,\n",[764,3712,3713,3715,3718],{"class":766,"line":1095},[764,3714,3098],{"class":962},[764,3716,3717],{"class":785}," ContactService",[764,3719,3720],{"class":1020}," $contacts,\n",[764,3722,3723,3725,3728],{"class":766,"line":1110},[764,3724,3098],{"class":962},[764,3726,3727],{"class":785}," Nonce",[764,3729,3730],{"class":1020}," $nonce,\n",[764,3732,3733,3735,3738],{"class":766,"line":1116},[764,3734,3098],{"class":962},[764,3736,3737],{"class":785}," Sanitizer",[764,3739,3740],{"class":1020}," $sanitizer,\n",[764,3742,3743,3745,3747],{"class":766,"line":1121},[764,3744,3098],{"class":962},[764,3746,3111],{"class":785},[764,3748,3114],{"class":1020},[764,3750,3751],{"class":766,"line":1132},[764,3752,3119],{"class":1020},[764,3754,3755],{"class":766,"line":1142},[764,3756,1453],{"class":1020},[764,3758,3759],{"class":766,"line":1152},[764,3760,818],{"emptyLinePlaceholder":817},[764,3762,3763,3765,3767,3770,3772,3774],{"class":766,"line":1157},[764,3764,2274],{"class":962},[764,3766,1300],{"class":962},[764,3768,3769],{"class":769}," index",[764,3771,2843],{"class":1020},[764,3773,1616],{"class":962},[764,3775,2292],{"class":962},[764,3777,3778],{"class":766,"line":1163},[764,3779,2297],{"class":1020},[764,3781,3782,3785,3787,3789,3791,3794,3796,3799],{"class":766,"line":1183},[764,3783,3784],{"class":1020},"        $contacts ",[764,3786,1027],{"class":962},[764,3788,3152],{"class":785},[764,3790,1653],{"class":962},[764,3792,3793],{"class":1020},"contacts",[764,3795,1653],{"class":962},[764,3797,3798],{"class":769},"all",[764,3800,2136],{"class":1020},[764,3802,3803],{"class":766,"line":1198},[764,3804,818],{"emptyLinePlaceholder":817},[764,3806,3807,3810,3812,3814,3817,3819,3822,3824,3827],{"class":766,"line":1211},[764,3808,3809],{"class":785},"        echo",[764,3811,3152],{"class":785},[764,3813,1653],{"class":962},[764,3815,3816],{"class":1020},"view",[764,3818,1653],{"class":962},[764,3820,3821],{"class":769},"render",[764,3823,1021],{"class":1020},[764,3825,3826],{"class":773},"'admin\u002Findex'",[764,3828,3829],{"class":1020},", [\n",[764,3831,3832,3835,3837,3840,3842,3844,3846,3848,3850,3852,3854,3856],{"class":766,"line":1225},[764,3833,3834],{"class":773},"            'title'",[764,3836,1189],{"class":962},[764,3838,3839],{"class":769}," __",[764,3841,1021],{"class":1020},[764,3843,2611],{"class":773},[764,3845,1294],{"class":1020},[764,3847,3237],{"class":785},[764,3849,1653],{"class":962},[764,3851,2565],{"class":1020},[764,3853,1653],{"class":962},[764,3855,2619],{"class":769},[764,3857,2622],{"class":1020},[764,3859,3860,3863,3865],{"class":766,"line":1238},[764,3861,3862],{"class":773},"            'contacts'",[764,3864,1244],{"class":962},[764,3866,3720],{"class":1020},[764,3868,3869,3872,3874,3876,3878,3881,3883,3885,3887,3890],{"class":766,"line":1252},[764,3870,3871],{"class":773},"            'deleteNonce'",[764,3873,1231],{"class":962},[764,3875,3152],{"class":785},[764,3877,1653],{"class":962},[764,3879,3880],{"class":1020},"nonce",[764,3882,1653],{"class":962},[764,3884,1177],{"class":769},[764,3886,1021],{"class":1020},[764,3888,3889],{"class":773},"'delete_contact'",[764,3891,2925],{"class":1020},[764,3893,3894],{"class":766,"line":1266},[764,3895,3896],{"class":1020},"        ]);\n",[764,3898,3899],{"class":766,"line":1272},[764,3900,1453],{"class":1020},[764,3902,3903],{"class":766,"line":1277},[764,3904,818],{"emptyLinePlaceholder":817},[764,3906,3907,3909,3911,3913,3915,3917],{"class":766,"line":1283},[764,3908,2274],{"class":962},[764,3910,1300],{"class":962},[764,3912,3379],{"class":769},[764,3914,2843],{"class":1020},[764,3916,1616],{"class":962},[764,3918,2292],{"class":962},[764,3920,3921],{"class":766,"line":1311},[764,3922,2297],{"class":1020},[764,3924,3925,3927,3929,3931,3933,3935,3937,3939,3942],{"class":766,"line":1325},[764,3926,3809],{"class":785},[764,3928,3152],{"class":785},[764,3930,1653],{"class":962},[764,3932,3816],{"class":1020},[764,3934,1653],{"class":962},[764,3936,3821],{"class":769},[764,3938,1021],{"class":1020},[764,3940,3941],{"class":773},"'admin\u002Fcreate'",[764,3943,3829],{"class":1020},[764,3945,3946,3948,3950,3952,3954,3957,3959,3961,3963,3965,3967,3969],{"class":766,"line":1331},[764,3947,3834],{"class":773},[764,3949,1231],{"class":962},[764,3951,3839],{"class":769},[764,3953,1021],{"class":1020},[764,3955,3956],{"class":773},"'Add Contact'",[764,3958,1294],{"class":1020},[764,3960,3237],{"class":785},[764,3962,1653],{"class":962},[764,3964,2565],{"class":1020},[764,3966,1653],{"class":962},[764,3968,2619],{"class":769},[764,3970,2622],{"class":1020},[764,3972,3973,3976,3978,3980,3982,3984,3986,3988,3990,3993],{"class":766,"line":1336},[764,3974,3975],{"class":773},"            'nonce'",[764,3977,1231],{"class":962},[764,3979,3152],{"class":785},[764,3981,1653],{"class":962},[764,3983,3880],{"class":1020},[764,3985,1653],{"class":962},[764,3987,1177],{"class":769},[764,3989,1021],{"class":1020},[764,3991,3992],{"class":773},"'create_contact'",[764,3994,2925],{"class":1020},[764,3996,3997],{"class":766,"line":1358},[764,3998,3896],{"class":1020},[764,4000,4001],{"class":766,"line":1371},[764,4002,1453],{"class":1020},[764,4004,4005],{"class":766,"line":1376},[764,4006,818],{"emptyLinePlaceholder":817},[764,4008,4009,4011,4013,4016,4018,4020],{"class":766,"line":1381},[764,4010,2274],{"class":962},[764,4012,1300],{"class":962},[764,4014,4015],{"class":769}," store",[764,4017,2843],{"class":1020},[764,4019,1616],{"class":962},[764,4021,2292],{"class":962},[764,4023,4024],{"class":766,"line":1387},[764,4025,2297],{"class":1020},[764,4027,4028,4030,4032,4034,4036,4038,4040,4042,4045,4048,4051,4054,4057,4060,4062,4064],{"class":766,"line":1410},[764,4029,2371],{"class":962},[764,4031,1075],{"class":1020},[764,4033,2376],{"class":962},[764,4035,3237],{"class":785},[764,4037,1653],{"class":962},[764,4039,3880],{"class":1020},[764,4041,1653],{"class":962},[764,4043,4044],{"class":769},"verify",[764,4046,4047],{"class":1020},"($_POST[",[764,4049,4050],{"class":773},"'_nonce'",[764,4052,4053],{"class":1020},"] ",[764,4055,4056],{"class":962},"??",[764,4058,4059],{"class":773}," ''",[764,4061,1294],{"class":1020},[764,4063,3992],{"class":773},[764,4065,1092],{"class":1020},[764,4067,4068,4071,4073,4076,4078,4081,4083,4085,4087,4089,4091,4093],{"class":766,"line":1430},[764,4069,4070],{"class":769},"            wp_die",[764,4072,1021],{"class":1020},[764,4074,4075],{"class":769},"__",[764,4077,1021],{"class":1020},[764,4079,4080],{"class":773},"'Invalid nonce'",[764,4082,1294],{"class":1020},[764,4084,3237],{"class":785},[764,4086,1653],{"class":962},[764,4088,2565],{"class":1020},[764,4090,1653],{"class":962},[764,4092,2619],{"class":769},[764,4094,4095],{"class":1020},"()));\n",[764,4097,4098],{"class":766,"line":1444},[764,4099,2394],{"class":1020},[764,4101,4102],{"class":766,"line":1450},[764,4103,818],{"emptyLinePlaceholder":817},[764,4105,4106,4108,4110,4112,4115,4117,4120],{"class":766,"line":1456},[764,4107,2371],{"class":962},[764,4109,1075],{"class":1020},[764,4111,2376],{"class":962},[764,4113,4114],{"class":769},"current_user_can",[764,4116,1021],{"class":1020},[764,4118,4119],{"class":773},"'manage_options'",[764,4121,1092],{"class":1020},[764,4123,4124,4126,4128,4130,4132,4135,4137,4139,4141,4143,4145,4147],{"class":766,"line":2067},[764,4125,4070],{"class":769},[764,4127,1021],{"class":1020},[764,4129,4075],{"class":769},[764,4131,1021],{"class":1020},[764,4133,4134],{"class":773},"'Unauthorized'",[764,4136,1294],{"class":1020},[764,4138,3237],{"class":785},[764,4140,1653],{"class":962},[764,4142,2565],{"class":1020},[764,4144,1653],{"class":962},[764,4146,2619],{"class":769},[764,4148,4095],{"class":1020},[764,4150,4151],{"class":766,"line":22},[764,4152,2394],{"class":1020},[764,4154,4155],{"class":766,"line":2110},[764,4156,818],{"emptyLinePlaceholder":817},[764,4158,4159,4162,4164,4166,4169],{"class":766,"line":2115},[764,4160,4161],{"class":1020},"        $validator ",[764,4163,1027],{"class":962},[764,4165,1632],{"class":962},[764,4167,4168],{"class":785}," Validator",[764,4170,2136],{"class":1020},[764,4172,4173,4176,4178,4181,4183,4186],{"class":766,"line":2120},[764,4174,4175],{"class":1020},"        $result ",[764,4177,1027],{"class":962},[764,4179,4180],{"class":1020}," $validator",[764,4182,1653],{"class":962},[764,4184,4185],{"class":769},"validate",[764,4187,4188],{"class":1020},"($_POST, [\n",[764,4190,4191,4194,4196,4199],{"class":766,"line":2126},[764,4192,4193],{"class":773},"            'name'",[764,4195,1258],{"class":962},[764,4197,4198],{"class":773}," 'required|string|max:255'",[764,4200,1195],{"class":1020},[764,4202,4203,4206,4208,4211],{"class":766,"line":2139},[764,4204,4205],{"class":773},"            'email'",[764,4207,1231],{"class":962},[764,4209,4210],{"class":773}," 'required|email'",[764,4212,1195],{"class":1020},[764,4214,4215,4218,4220,4223],{"class":766,"line":2144},[764,4216,4217],{"class":773},"            'phone'",[764,4219,1231],{"class":962},[764,4221,4222],{"class":773}," 'nullable|string|max:50'",[764,4224,1195],{"class":1020},[764,4226,4227,4230,4232,4235],{"class":766,"line":2153},[764,4228,4229],{"class":773},"            'notes'",[764,4231,1231],{"class":962},[764,4233,4234],{"class":773}," 'nullable|string'",[764,4236,1195],{"class":1020},[764,4238,4239],{"class":766,"line":2749},[764,4240,3896],{"class":1020},[764,4242,4243],{"class":766,"line":2768},[764,4244,818],{"emptyLinePlaceholder":817},[764,4246,4247,4249,4252,4254,4257],{"class":766,"line":2779},[764,4248,2371],{"class":962},[764,4250,4251],{"class":1020}," ($result",[764,4253,1653],{"class":962},[764,4255,4256],{"class":769},"fails",[764,4258,2382],{"class":1020},[764,4260,4261,4264],{"class":766,"line":2784},[764,4262,4263],{"class":769},"            set_transient",[764,4265,2601],{"class":1020},[764,4267,4268,4271,4273,4275,4277,4279,4281,4283,4286],{"class":766,"line":2789},[764,4269,4270],{"class":785},"                $this",[764,4272,1653],{"class":962},[764,4274,2565],{"class":1020},[764,4276,1653],{"class":962},[764,4278,2892],{"class":769},[764,4280,2758],{"class":1020},[764,4282,927],{"class":962},[764,4284,4285],{"class":773}," 'form_errors'",[764,4287,1195],{"class":1020},[764,4289,4290,4293,4295,4298],{"class":766,"line":2794},[764,4291,4292],{"class":1020},"                $result",[764,4294,1653],{"class":962},[764,4296,4297],{"class":769},"errors",[764,4299,2658],{"class":1020},[764,4301,4302],{"class":766,"line":2819},[764,4303,4304],{"class":785},"                30\n",[764,4306,4307],{"class":766,"line":2824},[764,4308,4309],{"class":1020},"            );\n",[764,4311,4312,4315,4317,4320,4322,4325,4327,4329,4331,4333,4335,4337,4339,4341,4344],{"class":766,"line":2853},[764,4313,4314],{"class":769},"            wp_redirect",[764,4316,1021],{"class":1020},[764,4318,4319],{"class":769},"admin_url",[764,4321,1021],{"class":1020},[764,4323,4324],{"class":773},"'admin.php?page='",[764,4326,1086],{"class":962},[764,4328,3152],{"class":785},[764,4330,1653],{"class":962},[764,4332,2565],{"class":1020},[764,4334,1653],{"class":962},[764,4336,2655],{"class":769},[764,4338,2758],{"class":1020},[764,4340,927],{"class":962},[764,4342,4343],{"class":773}," '-add&error=1'",[764,4345,4346],{"class":1020},"));\n",[764,4348,4349,4352],{"class":766,"line":2860},[764,4350,4351],{"class":962},"            exit",[764,4353,1061],{"class":1020},[764,4355,4356],{"class":766,"line":2865},[764,4357,2394],{"class":1020},[764,4359,4360],{"class":766,"line":2870},[764,4361,818],{"emptyLinePlaceholder":817},[764,4363,4364,4366,4368,4370,4372,4374],{"class":766,"line":2878},[764,4365,3132],{"class":785},[764,4367,1653],{"class":962},[764,4369,3793],{"class":1020},[764,4371,1653],{"class":962},[764,4373,1177],{"class":769},[764,4375,1180],{"class":1020},[764,4377,4378,4380,4382,4384,4386,4389,4391,4393,4395,4398],{"class":766,"line":2904},[764,4379,4193],{"class":773},[764,4381,1258],{"class":962},[764,4383,3152],{"class":785},[764,4385,1653],{"class":962},[764,4387,4388],{"class":1020},"sanitizer",[764,4390,1653],{"class":962},[764,4392,937],{"class":769},[764,4394,4047],{"class":1020},[764,4396,4397],{"class":773},"'name'",[764,4399,4400],{"class":1020},"]),\n",[764,4402,4403,4405,4407,4409,4411,4413,4415,4418,4420,4423],{"class":766,"line":2928},[764,4404,4205],{"class":773},[764,4406,1231],{"class":962},[764,4408,3152],{"class":785},[764,4410,1653],{"class":962},[764,4412,4388],{"class":1020},[764,4414,1653],{"class":962},[764,4416,4417],{"class":769},"email",[764,4419,4047],{"class":1020},[764,4421,4422],{"class":773},"'email'",[764,4424,4400],{"class":1020},[764,4426,4427,4429,4431,4433,4435,4437,4439,4441,4443,4446,4448,4450,4452],{"class":766,"line":2934},[764,4428,4217],{"class":773},[764,4430,1231],{"class":962},[764,4432,3152],{"class":785},[764,4434,1653],{"class":962},[764,4436,4388],{"class":1020},[764,4438,1653],{"class":962},[764,4440,937],{"class":769},[764,4442,4047],{"class":1020},[764,4444,4445],{"class":773},"'phone'",[764,4447,4053],{"class":1020},[764,4449,4056],{"class":962},[764,4451,4059],{"class":773},[764,4453,2925],{"class":1020},[764,4455,4456,4458,4460,4462,4464,4466,4468,4471,4473,4476,4478,4480,4482],{"class":766,"line":2953},[764,4457,4229],{"class":773},[764,4459,1231],{"class":962},[764,4461,3152],{"class":785},[764,4463,1653],{"class":962},[764,4465,4388],{"class":1020},[764,4467,1653],{"class":962},[764,4469,4470],{"class":769},"textarea",[764,4472,4047],{"class":1020},[764,4474,4475],{"class":773},"'notes'",[764,4477,4053],{"class":1020},[764,4479,4056],{"class":962},[764,4481,4059],{"class":773},[764,4483,2925],{"class":1020},[764,4485,4486],{"class":766,"line":2958},[764,4487,3896],{"class":1020},[764,4489,4490],{"class":766,"line":2963},[764,4491,818],{"emptyLinePlaceholder":817},[764,4493,4495,4498,4500,4502,4504,4506,4508,4510,4512,4514,4516,4518,4520,4522,4525],{"class":766,"line":4494},77,[764,4496,4497],{"class":769},"        wp_redirect",[764,4499,1021],{"class":1020},[764,4501,4319],{"class":769},[764,4503,1021],{"class":1020},[764,4505,4324],{"class":773},[764,4507,1086],{"class":962},[764,4509,3152],{"class":785},[764,4511,1653],{"class":962},[764,4513,2565],{"class":1020},[764,4515,1653],{"class":962},[764,4517,2655],{"class":769},[764,4519,2758],{"class":1020},[764,4521,927],{"class":962},[764,4523,4524],{"class":773}," '&saved=1'",[764,4526,4346],{"class":1020},[764,4528,4530,4533],{"class":766,"line":4529},78,[764,4531,4532],{"class":962},"        exit",[764,4534,1061],{"class":1020},[764,4536,4538],{"class":766,"line":4537},79,[764,4539,1453],{"class":1020},[764,4541,4543],{"class":766,"line":4542},80,[764,4544,1113],{"class":1020},[705,4546,4548],{"id":4547},"step-9-setup-activation-database-table","Step 9: Setup Activation (Database Table)",[701,4550,1500,4551,4553,4554,4557],{},[761,4552,1478],{}," class already exists at ",[761,4555,4556],{},"app\u002FLifecycle\u002FActivator.php",". Add the contacts table creation:",[754,4559,4561],{"className":953,"code":4560,"language":955,"meta":759,"style":759},"\u003C?php\n\nnamespace ContactManager\\Lifecycle;\n\nuse ContactManager\\Core\\PluginContext;\n\nclass Activator\n{\n    public static function activate(PluginContext $context): void\n    {\n        \u002F\u002F Check requirements\n        if (!self::checkRequirements()) {\n            deactivate_plugins(plugin_basename($context->file()));\n            wp_die(\n                esc_html__('Requires PHP 8.1+ and WordPress 6.0+', $context->textDomain()),\n                esc_html__('Plugin Activation Error', $context->textDomain()),\n                ['back_link' => true]\n            );\n        }\n\n        \u002F\u002F Create database table\n        self::createTables($context);\n\n        \u002F\u002F Set defaults\n        self::setDefaults($context);\n\n        \u002F\u002F Flush rewrite rules\n        flush_rewrite_rules();\n    }\n\n    private static function checkRequirements(): bool\n    {\n        return PHP_VERSION_ID >= 80100\n            && version_compare(get_bloginfo('version'), '6.0', '>=');\n    }\n\n    private static function createTables(PluginContext $context): void\n    {\n        require_once ABSPATH . 'wp-admin\u002Fincludes\u002Fupgrade.php';\n\n        global $wpdb;\n        $table   = $wpdb->prefix . $context->prefix() . 'contacts';\n        $charset = $wpdb->get_charset_collate();\n\n        $sql = \"CREATE TABLE $table (\n            id bigint(20) unsigned NOT NULL AUTO_INCREMENT,\n            name varchar(255) NOT NULL,\n            email varchar(255) NOT NULL,\n            phone varchar(50) DEFAULT '',\n            notes text,\n            created_at datetime DEFAULT CURRENT_TIMESTAMP,\n            updated_at datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n            PRIMARY KEY (id),\n            KEY email (email)\n        ) $charset;\";\n\n        dbDelta($sql);\n    }\n\n    private static function setDefaults(PluginContext $context): void\n    {\n        update_option($context->prefix() . 'version', $context->version());\n    }\n}\n",[761,4562,4563,4569,4573,4582,4586,4594,4598,4605,4609,4630,4634,4639,4653,4673,4679,4697,4714,4729,4733,4737,4741,4746,4756,4760,4765,4774,4778,4783,4790,4794,4798,4816,4820,4833,4864,4868,4872,4893,4897,4912,4916,4922,4952,4968,4972,4994,5016,5035,5053,5073,5082,5096,5113,5121,5129,5142,5146,5154,5158,5162,5183,5187,5213,5217],{"__ignoreMap":759},[764,4564,4565,4567],{"class":766,"line":6},[764,4566,963],{"class":962},[764,4568,966],{"class":785},[764,4570,4571],{"class":766,"line":29},[764,4572,818],{"emptyLinePlaceholder":817},[764,4574,4575,4577,4580],{"class":766,"line":14},[764,4576,2192],{"class":962},[764,4578,4579],{"class":769}," ContactManager\\Lifecycle",[764,4581,1061],{"class":1020},[764,4583,4584],{"class":766,"line":18},[764,4585,818],{"emptyLinePlaceholder":817},[764,4587,4588,4590,4592],{"class":766,"line":70},[764,4589,1124],{"class":962},[764,4591,1127],{"class":785},[764,4593,1061],{"class":1020},[764,4595,4596],{"class":766,"line":74},[764,4597,818],{"emptyLinePlaceholder":817},[764,4599,4600,4602],{"class":766,"line":78},[764,4601,2255],{"class":962},[764,4603,4604],{"class":769}," Activator\n",[764,4606,4607],{"class":766,"line":82},[764,4608,2269],{"class":1020},[764,4610,4611,4613,4615,4617,4620,4622,4624,4626,4628],{"class":766,"line":86},[764,4612,2274],{"class":962},[764,4614,1603],{"class":962},[764,4616,1300],{"class":962},[764,4618,4619],{"class":769}," activate",[764,4621,1021],{"class":1020},[764,4623,1610],{"class":785},[764,4625,1613],{"class":1020},[764,4627,1616],{"class":962},[764,4629,2292],{"class":962},[764,4631,4632],{"class":766,"line":90},[764,4633,2297],{"class":1020},[764,4635,4636],{"class":766,"line":1014},[764,4637,4638],{"class":971},"        \u002F\u002F Check requirements\n",[764,4640,4641,4643,4645,4648,4651],{"class":766,"line":1036},[764,4642,2371],{"class":962},[764,4644,1075],{"class":1020},[764,4646,4647],{"class":962},"!self::",[764,4649,4650],{"class":769},"checkRequirements",[764,4652,2382],{"class":1020},[764,4654,4655,4658,4660,4663,4666,4668,4671],{"class":766,"line":1041},[764,4656,4657],{"class":769},"            deactivate_plugins",[764,4659,1021],{"class":1020},[764,4661,4662],{"class":769},"plugin_basename",[764,4664,4665],{"class":1020},"($context",[764,4667,1653],{"class":962},[764,4669,4670],{"class":769},"file",[764,4672,4095],{"class":1020},[764,4674,4675,4677],{"class":766,"line":1064},[764,4676,4070],{"class":769},[764,4678,2601],{"class":1020},[764,4680,4681,4684,4686,4689,4691,4693,4695],{"class":766,"line":1069},[764,4682,4683],{"class":769},"                esc_html__",[764,4685,1021],{"class":1020},[764,4687,4688],{"class":773},"'Requires PHP 8.1+ and WordPress 6.0+'",[764,4690,2614],{"class":1020},[764,4692,1653],{"class":962},[764,4694,2619],{"class":769},[764,4696,2622],{"class":1020},[764,4698,4699,4701,4703,4706,4708,4710,4712],{"class":766,"line":1095},[764,4700,4683],{"class":769},[764,4702,1021],{"class":1020},[764,4704,4705],{"class":773},"'Plugin Activation Error'",[764,4707,2614],{"class":1020},[764,4709,1653],{"class":962},[764,4711,2619],{"class":769},[764,4713,2622],{"class":1020},[764,4715,4716,4719,4722,4724,4727],{"class":766,"line":1110},[764,4717,4718],{"class":1020},"                [",[764,4720,4721],{"class":773},"'back_link'",[764,4723,1231],{"class":962},[764,4725,4726],{"class":785}," true",[764,4728,2776],{"class":1020},[764,4730,4731],{"class":766,"line":1116},[764,4732,4309],{"class":1020},[764,4734,4735],{"class":766,"line":1121},[764,4736,2394],{"class":1020},[764,4738,4739],{"class":766,"line":1132},[764,4740,818],{"emptyLinePlaceholder":817},[764,4742,4743],{"class":766,"line":1142},[764,4744,4745],{"class":971},"        \u002F\u002F Create database table\n",[764,4747,4748,4751,4754],{"class":766,"line":1152},[764,4749,4750],{"class":962},"        self::",[764,4752,4753],{"class":769},"createTables",[764,4755,1322],{"class":1020},[764,4757,4758],{"class":766,"line":1157},[764,4759,818],{"emptyLinePlaceholder":817},[764,4761,4762],{"class":766,"line":1163},[764,4763,4764],{"class":971},"        \u002F\u002F Set defaults\n",[764,4766,4767,4769,4772],{"class":766,"line":1183},[764,4768,4750],{"class":962},[764,4770,4771],{"class":769},"setDefaults",[764,4773,1322],{"class":1020},[764,4775,4776],{"class":766,"line":1198},[764,4777,818],{"emptyLinePlaceholder":817},[764,4779,4780],{"class":766,"line":1211},[764,4781,4782],{"class":971},"        \u002F\u002F Flush rewrite rules\n",[764,4784,4785,4788],{"class":766,"line":1225},[764,4786,4787],{"class":769},"        flush_rewrite_rules",[764,4789,2136],{"class":1020},[764,4791,4792],{"class":766,"line":1238},[764,4793,1453],{"class":1020},[764,4795,4796],{"class":766,"line":1252},[764,4797,818],{"emptyLinePlaceholder":817},[764,4799,4800,4802,4804,4806,4809,4811,4813],{"class":766,"line":1266},[764,4801,2532],{"class":962},[764,4803,1603],{"class":962},[764,4805,1300],{"class":962},[764,4807,4808],{"class":769}," checkRequirements",[764,4810,2843],{"class":1020},[764,4812,1616],{"class":962},[764,4814,4815],{"class":962}," bool\n",[764,4817,4818],{"class":766,"line":1272},[764,4819,2297],{"class":1020},[764,4821,4822,4824,4827,4830],{"class":766,"line":1277},[764,4823,3208],{"class":962},[764,4825,4826],{"class":785}," PHP_VERSION_ID",[764,4828,4829],{"class":962}," >=",[764,4831,4832],{"class":785}," 80100\n",[764,4834,4835,4838,4841,4843,4846,4848,4851,4854,4857,4859,4862],{"class":766,"line":1283},[764,4836,4837],{"class":962},"            &&",[764,4839,4840],{"class":785}," version_compare",[764,4842,1021],{"class":1020},[764,4844,4845],{"class":769},"get_bloginfo",[764,4847,1021],{"class":1020},[764,4849,4850],{"class":773},"'version'",[764,4852,4853],{"class":1020},"), ",[764,4855,4856],{"class":773},"'6.0'",[764,4858,1294],{"class":1020},[764,4860,4861],{"class":773},"'>='",[764,4863,1033],{"class":1020},[764,4865,4866],{"class":766,"line":1311},[764,4867,1453],{"class":1020},[764,4869,4870],{"class":766,"line":1325},[764,4871,818],{"emptyLinePlaceholder":817},[764,4873,4874,4876,4878,4880,4883,4885,4887,4889,4891],{"class":766,"line":1331},[764,4875,2532],{"class":962},[764,4877,1603],{"class":962},[764,4879,1300],{"class":962},[764,4881,4882],{"class":769}," createTables",[764,4884,1021],{"class":1020},[764,4886,1610],{"class":785},[764,4888,1613],{"class":1020},[764,4890,1616],{"class":962},[764,4892,2292],{"class":962},[764,4894,4895],{"class":766,"line":1336},[764,4896,2297],{"class":1020},[764,4898,4899,4902,4905,4907,4910],{"class":766,"line":1358},[764,4900,4901],{"class":962},"        require_once",[764,4903,4904],{"class":785}," ABSPATH",[764,4906,1086],{"class":962},[764,4908,4909],{"class":773}," 'wp-admin\u002Fincludes\u002Fupgrade.php'",[764,4911,1061],{"class":1020},[764,4913,4914],{"class":766,"line":1371},[764,4915,818],{"emptyLinePlaceholder":817},[764,4917,4918,4920],{"class":766,"line":1376},[764,4919,3124],{"class":962},[764,4921,3127],{"class":1020},[764,4923,4924,4927,4929,4931,4933,4935,4937,4940,4942,4944,4946,4948,4950],{"class":766,"line":1381},[764,4925,4926],{"class":1020},"        $table   ",[764,4928,1027],{"class":962},[764,4930,3142],{"class":1020},[764,4932,1653],{"class":962},[764,4934,3147],{"class":1020},[764,4936,927],{"class":962},[764,4938,4939],{"class":1020}," $context",[764,4941,1653],{"class":962},[764,4943,2892],{"class":769},[764,4945,2758],{"class":1020},[764,4947,927],{"class":962},[764,4949,3167],{"class":773},[764,4951,1061],{"class":1020},[764,4953,4954,4957,4959,4961,4963,4966],{"class":766,"line":1387},[764,4955,4956],{"class":1020},"        $charset ",[764,4958,1027],{"class":962},[764,4960,3142],{"class":1020},[764,4962,1653],{"class":962},[764,4964,4965],{"class":769},"get_charset_collate",[764,4967,2136],{"class":1020},[764,4969,4970],{"class":766,"line":1410},[764,4971,818],{"emptyLinePlaceholder":817},[764,4973,4974,4977,4979,4982,4985,4988,4991],{"class":766,"line":1430},[764,4975,4976],{"class":1020},"        $sql ",[764,4978,1027],{"class":962},[764,4980,4981],{"class":773}," \"",[764,4983,4984],{"class":962},"CREATE",[764,4986,4987],{"class":962}," TABLE",[764,4989,4990],{"class":1020}," $table",[764,4992,4993],{"class":773}," (\n",[764,4995,4996,4999,5002,5004,5007,5010,5013],{"class":766,"line":1444},[764,4997,4998],{"class":773},"            id ",[764,5000,5001],{"class":962},"bigint",[764,5003,1021],{"class":773},[764,5005,5006],{"class":785},"20",[764,5008,5009],{"class":773},") unsigned ",[764,5011,5012],{"class":962},"NOT NULL",[764,5014,5015],{"class":773}," AUTO_INCREMENT,\n",[764,5017,5018,5021,5024,5026,5029,5031,5033],{"class":766,"line":1450},[764,5019,5020],{"class":962},"            name",[764,5022,5023],{"class":962}," varchar",[764,5025,1021],{"class":773},[764,5027,5028],{"class":785},"255",[764,5030,1052],{"class":773},[764,5032,5012],{"class":962},[764,5034,1195],{"class":773},[764,5036,5037,5040,5043,5045,5047,5049,5051],{"class":766,"line":1456},[764,5038,5039],{"class":773},"            email ",[764,5041,5042],{"class":962},"varchar",[764,5044,1021],{"class":773},[764,5046,5028],{"class":785},[764,5048,1052],{"class":773},[764,5050,5012],{"class":962},[764,5052,1195],{"class":773},[764,5054,5055,5058,5060,5062,5065,5067,5070],{"class":766,"line":2067},[764,5056,5057],{"class":773},"            phone ",[764,5059,5042],{"class":962},[764,5061,1021],{"class":773},[764,5063,5064],{"class":785},"50",[764,5066,1052],{"class":773},[764,5068,5069],{"class":962},"DEFAULT",[764,5071,5072],{"class":773}," '',\n",[764,5074,5075,5078,5080],{"class":766,"line":22},[764,5076,5077],{"class":773},"            notes ",[764,5079,937],{"class":962},[764,5081,1195],{"class":773},[764,5083,5084,5087,5090,5093],{"class":766,"line":2110},[764,5085,5086],{"class":773},"            created_at ",[764,5088,5089],{"class":962},"datetime",[764,5091,5092],{"class":962}," DEFAULT",[764,5094,5095],{"class":773}," CURRENT_TIMESTAMP,\n",[764,5097,5098,5101,5103,5105,5108,5111],{"class":766,"line":2115},[764,5099,5100],{"class":773},"            updated_at ",[764,5102,5089],{"class":962},[764,5104,5092],{"class":962},[764,5106,5107],{"class":773}," CURRENT_TIMESTAMP ",[764,5109,5110],{"class":962},"ON UPDATE",[764,5112,5095],{"class":773},[764,5114,5115,5118],{"class":766,"line":2120},[764,5116,5117],{"class":962},"            PRIMARY KEY",[764,5119,5120],{"class":773}," (id),\n",[764,5122,5123,5126],{"class":766,"line":2126},[764,5124,5125],{"class":962},"            KEY",[764,5127,5128],{"class":773}," email (email)\n",[764,5130,5131,5134,5137,5140],{"class":766,"line":2139},[764,5132,5133],{"class":773},"        ) ",[764,5135,5136],{"class":1020},"$charset",[764,5138,5139],{"class":773},";\"",[764,5141,1061],{"class":1020},[764,5143,5144],{"class":766,"line":2144},[764,5145,818],{"emptyLinePlaceholder":817},[764,5147,5148,5151],{"class":766,"line":2153},[764,5149,5150],{"class":769},"        dbDelta",[764,5152,5153],{"class":1020},"($sql);\n",[764,5155,5156],{"class":766,"line":2749},[764,5157,1453],{"class":1020},[764,5159,5160],{"class":766,"line":2768},[764,5161,818],{"emptyLinePlaceholder":817},[764,5163,5164,5166,5168,5170,5173,5175,5177,5179,5181],{"class":766,"line":2779},[764,5165,2532],{"class":962},[764,5167,1603],{"class":962},[764,5169,1300],{"class":962},[764,5171,5172],{"class":769}," setDefaults",[764,5174,1021],{"class":1020},[764,5176,1610],{"class":785},[764,5178,1613],{"class":1020},[764,5180,1616],{"class":962},[764,5182,2292],{"class":962},[764,5184,5185],{"class":766,"line":2784},[764,5186,2297],{"class":1020},[764,5188,5189,5192,5194,5196,5198,5200,5202,5205,5207,5209,5211],{"class":766,"line":2789},[764,5190,5191],{"class":769},"        update_option",[764,5193,4665],{"class":1020},[764,5195,1653],{"class":962},[764,5197,2892],{"class":769},[764,5199,2758],{"class":1020},[764,5201,927],{"class":962},[764,5203,5204],{"class":773}," 'version'",[764,5206,2614],{"class":1020},[764,5208,1653],{"class":962},[764,5210,2947],{"class":769},[764,5212,1987],{"class":1020},[764,5214,5215],{"class":766,"line":2794},[764,5216,1453],{"class":1020},[764,5218,5219],{"class":766,"line":2819},[764,5220,1113],{"class":1020},[705,5222,5224],{"id":5223},"step-10-create-views","Step 10: Create Views",[701,5226,2169,5227,1616],{},[761,5228,5229],{},"resources\u002Fviews\u002Fadmin\u002Findex.php",[754,5231,5233],{"className":953,"code":5232,"language":955,"meta":759,"style":759},"\u003C?php\n\u002F** @var array $contacts *\u002F\n\u002F** @var string $title *\u002F\n\u002F** @var string $deleteNonce *\u002F\n?>\n\u003Cdiv class=\"wrap\">\n    \u003Ch1 class=\"wp-heading-inline\">\u003C?php echo esc_html($title); ?>\u003C\u002Fh1>\n    \u003Ca href=\"\u003C?php echo esc_url(admin_url('admin.php?page=' . $context->slug() . '-add')); ?>\" class=\"page-title-action\">\n        \u003C?php esc_html_e('Add New', $context->textDomain()); ?>\n    \u003C\u002Fa>\n\n    \u003C?php if (isset($_GET['saved'])): ?>\n        \u003Cdiv class=\"notice notice-success\">\u003Cp>\u003C?php esc_html_e('Contact saved!', $context->textDomain()); ?>\u003C\u002Fp>\u003C\u002Fdiv>\n    \u003C?php endif; ?>\n\n    \u003Ctable class=\"wp-list-table widefat striped\">\n        \u003Cthead>\n            \u003Ctr>\n                \u003Cth>\u003C?php esc_html_e('Name', $context->textDomain()); ?>\u003C\u002Fth>\n                \u003Cth>\u003C?php esc_html_e('Email', $context->textDomain()); ?>\u003C\u002Fth>\n                \u003Cth>\u003C?php esc_html_e('Phone', $context->textDomain()); ?>\u003C\u002Fth>\n                \u003Cth>\u003C?php esc_html_e('Actions', $context->textDomain()); ?>\u003C\u002Fth>\n            \u003C\u002Ftr>\n        \u003C\u002Fthead>\n        \u003Ctbody>\n            \u003C?php foreach ($contacts as $contact): ?>\n            \u003Ctr>\n                \u003Ctd>\u003C?php echo esc_html($contact->name); ?>\u003C\u002Ftd>\n                \u003Ctd>\u003C?php echo esc_html($contact->email); ?>\u003C\u002Ftd>\n                \u003Ctd>\u003C?php echo esc_html($contact->phone); ?>\u003C\u002Ftd>\n                \u003Ctd>\n                    \u003Ca href=\"\u003C?php echo esc_url(admin_url('admin.php?page=' . $context->slug() . '-edit&id=' . $contact->id)); ?>\">\n                        \u003C?php esc_html_e('Edit', $context->textDomain()); ?>\n                    \u003C\u002Fa>\n                \u003C\u002Ftd>\n            \u003C\u002Ftr>\n            \u003C?php endforeach; ?>\n        \u003C\u002Ftbody>\n    \u003C\u002Ftable>\n\u003C\u002Fdiv>\n",[761,5234,5235,5241,5255,5266,5277,5282,5299,5332,5364,5389,5398,5402,5431,5478,5492,5496,5509,5517,5526,5558,5589,5620,5651,5660,5669,5677,5700,5708,5736,5763,5790,5798,5833,5857,5866,5875,5883,5896,5904,5912],{"__ignoreMap":759},[764,5236,5237,5239],{"class":766,"line":6},[764,5238,963],{"class":962},[764,5240,966],{"class":785},[764,5242,5243,5246,5249,5252],{"class":766,"line":29},[764,5244,5245],{"class":971},"\u002F** ",[764,5247,5248],{"class":962},"@var",[764,5250,5251],{"class":962}," array",[764,5253,5254],{"class":971}," $contacts *\u002F\n",[764,5256,5257,5259,5261,5263],{"class":766,"line":14},[764,5258,5245],{"class":971},[764,5260,5248],{"class":962},[764,5262,3075],{"class":962},[764,5264,5265],{"class":971}," $title *\u002F\n",[764,5267,5268,5270,5272,5274],{"class":766,"line":18},[764,5269,5245],{"class":971},[764,5271,5248],{"class":962},[764,5273,3075],{"class":962},[764,5275,5276],{"class":971}," $deleteNonce *\u002F\n",[764,5278,5279],{"class":766,"line":70},[764,5280,5281],{"class":962},"?>\n",[764,5283,5284,5287,5290,5293,5296],{"class":766,"line":74},[764,5285,5286],{"class":962},"\u003C",[764,5288,5289],{"class":785},"div",[764,5291,5292],{"class":962}," class=",[764,5294,5295],{"class":773},"\"wrap\"",[764,5297,5298],{"class":962},">\n",[764,5300,5301,5304,5306,5308,5311,5314,5316,5319,5322,5325,5328,5330],{"class":766,"line":78},[764,5302,5303],{"class":962},"    \u003C",[764,5305,697],{"class":785},[764,5307,5292],{"class":962},[764,5309,5310],{"class":773},"\"wp-heading-inline\"",[764,5312,5313],{"class":962},">\u003C?",[764,5315,955],{"class":785},[764,5317,5318],{"class":785}," echo",[764,5320,5321],{"class":769}," esc_html",[764,5323,5324],{"class":1020},"($title); ",[764,5326,5327],{"class":962},"?>\u003C\u002F",[764,5329,697],{"class":785},[764,5331,5298],{"class":962},[764,5333,5334,5336,5339,5342,5344,5347,5350,5352,5354,5357,5359,5362],{"class":766,"line":82},[764,5335,5303],{"class":962},[764,5337,5338],{"class":785},"a",[764,5340,5341],{"class":785}," href",[764,5343,1027],{"class":962},[764,5345,5346],{"class":773},"\"\u003C?php echo esc_url(admin_url('admin.php?page=' . ",[764,5348,5349],{"class":1020},"$context",[764,5351,1653],{"class":962},[764,5353,2655],{"class":1020},[764,5355,5356],{"class":773},"() . '-add')); ?>\"",[764,5358,5292],{"class":962},[764,5360,5361],{"class":773},"\"page-title-action\"",[764,5363,5298],{"class":962},[764,5365,5366,5369,5371,5374,5376,5378,5380,5382,5384,5387],{"class":766,"line":86},[764,5367,5368],{"class":962},"        \u003C?",[764,5370,955],{"class":785},[764,5372,5373],{"class":769}," esc_html_e",[764,5375,1021],{"class":1020},[764,5377,2716],{"class":773},[764,5379,2614],{"class":1020},[764,5381,1653],{"class":962},[764,5383,2619],{"class":769},[764,5385,5386],{"class":1020},"()); ",[764,5388,5281],{"class":962},[764,5390,5391,5394,5396],{"class":766,"line":90},[764,5392,5393],{"class":962},"    \u003C\u002F",[764,5395,5338],{"class":785},[764,5397,5298],{"class":962},[764,5399,5400],{"class":766,"line":1014},[764,5401,818],{"emptyLinePlaceholder":817},[764,5403,5404,5407,5409,5412,5414,5417,5420,5423,5426,5428],{"class":766,"line":1036},[764,5405,5406],{"class":962},"    \u003C?",[764,5408,955],{"class":785},[764,5410,5411],{"class":962}," if",[764,5413,1075],{"class":1020},[764,5415,5416],{"class":785},"isset",[764,5418,5419],{"class":1020},"($_GET[",[764,5421,5422],{"class":773},"'saved'",[764,5424,5425],{"class":1020},"]))",[764,5427,1616],{"class":962},[764,5429,5430],{"class":962}," ?>\n",[764,5432,5433,5436,5438,5440,5443,5446,5448,5450,5452,5454,5456,5459,5461,5463,5465,5467,5469,5471,5474,5476],{"class":766,"line":1041},[764,5434,5435],{"class":962},"        \u003C",[764,5437,5289],{"class":785},[764,5439,5292],{"class":962},[764,5441,5442],{"class":773},"\"notice notice-success\"",[764,5444,5445],{"class":962},">\u003C",[764,5447,701],{"class":785},[764,5449,5313],{"class":962},[764,5451,955],{"class":785},[764,5453,5373],{"class":769},[764,5455,1021],{"class":1020},[764,5457,5458],{"class":773},"'Contact saved!'",[764,5460,2614],{"class":1020},[764,5462,1653],{"class":962},[764,5464,2619],{"class":769},[764,5466,5386],{"class":1020},[764,5468,5327],{"class":962},[764,5470,701],{"class":785},[764,5472,5473],{"class":962},">\u003C\u002F",[764,5475,5289],{"class":785},[764,5477,5298],{"class":962},[764,5479,5480,5482,5484,5487,5490],{"class":766,"line":1064},[764,5481,5406],{"class":962},[764,5483,955],{"class":785},[764,5485,5486],{"class":962}," endif",[764,5488,5489],{"class":1020},"; ",[764,5491,5281],{"class":962},[764,5493,5494],{"class":766,"line":1069},[764,5495,818],{"emptyLinePlaceholder":817},[764,5497,5498,5500,5502,5504,5507],{"class":766,"line":1095},[764,5499,5303],{"class":962},[764,5501,833],{"class":785},[764,5503,5292],{"class":962},[764,5505,5506],{"class":773},"\"wp-list-table widefat striped\"",[764,5508,5298],{"class":962},[764,5510,5511,5513,5515],{"class":766,"line":1110},[764,5512,5435],{"class":962},[764,5514,836],{"class":785},[764,5516,5298],{"class":962},[764,5518,5519,5522,5524],{"class":766,"line":1116},[764,5520,5521],{"class":962},"            \u003C",[764,5523,839],{"class":785},[764,5525,5298],{"class":962},[764,5527,5528,5531,5533,5535,5537,5539,5541,5544,5546,5548,5550,5552,5554,5556],{"class":766,"line":1121},[764,5529,5530],{"class":962},"                \u003C",[764,5532,842],{"class":785},[764,5534,5313],{"class":962},[764,5536,955],{"class":785},[764,5538,5373],{"class":769},[764,5540,1021],{"class":1020},[764,5542,5543],{"class":773},"'Name'",[764,5545,2614],{"class":1020},[764,5547,1653],{"class":962},[764,5549,2619],{"class":769},[764,5551,5386],{"class":1020},[764,5553,5327],{"class":962},[764,5555,842],{"class":785},[764,5557,5298],{"class":962},[764,5559,5560,5562,5564,5566,5568,5570,5572,5575,5577,5579,5581,5583,5585,5587],{"class":766,"line":1132},[764,5561,5530],{"class":962},[764,5563,842],{"class":785},[764,5565,5313],{"class":962},[764,5567,955],{"class":785},[764,5569,5373],{"class":769},[764,5571,1021],{"class":1020},[764,5573,5574],{"class":773},"'Email'",[764,5576,2614],{"class":1020},[764,5578,1653],{"class":962},[764,5580,2619],{"class":769},[764,5582,5386],{"class":1020},[764,5584,5327],{"class":962},[764,5586,842],{"class":785},[764,5588,5298],{"class":962},[764,5590,5591,5593,5595,5597,5599,5601,5603,5606,5608,5610,5612,5614,5616,5618],{"class":766,"line":1142},[764,5592,5530],{"class":962},[764,5594,842],{"class":785},[764,5596,5313],{"class":962},[764,5598,955],{"class":785},[764,5600,5373],{"class":769},[764,5602,1021],{"class":1020},[764,5604,5605],{"class":773},"'Phone'",[764,5607,2614],{"class":1020},[764,5609,1653],{"class":962},[764,5611,2619],{"class":769},[764,5613,5386],{"class":1020},[764,5615,5327],{"class":962},[764,5617,842],{"class":785},[764,5619,5298],{"class":962},[764,5621,5622,5624,5626,5628,5630,5632,5634,5637,5639,5641,5643,5645,5647,5649],{"class":766,"line":1152},[764,5623,5530],{"class":962},[764,5625,842],{"class":785},[764,5627,5313],{"class":962},[764,5629,955],{"class":785},[764,5631,5373],{"class":769},[764,5633,1021],{"class":1020},[764,5635,5636],{"class":773},"'Actions'",[764,5638,2614],{"class":1020},[764,5640,1653],{"class":962},[764,5642,2619],{"class":769},[764,5644,5386],{"class":1020},[764,5646,5327],{"class":962},[764,5648,842],{"class":785},[764,5650,5298],{"class":962},[764,5652,5653,5656,5658],{"class":766,"line":1157},[764,5654,5655],{"class":962},"            \u003C\u002F",[764,5657,839],{"class":785},[764,5659,5298],{"class":962},[764,5661,5662,5665,5667],{"class":766,"line":1163},[764,5663,5664],{"class":962},"        \u003C\u002F",[764,5666,836],{"class":785},[764,5668,5298],{"class":962},[764,5670,5671,5673,5675],{"class":766,"line":1183},[764,5672,5435],{"class":962},[764,5674,852],{"class":785},[764,5676,5298],{"class":962},[764,5678,5679,5682,5684,5687,5690,5693,5696,5698],{"class":766,"line":1198},[764,5680,5681],{"class":962},"            \u003C?",[764,5683,955],{"class":785},[764,5685,5686],{"class":962}," foreach",[764,5688,5689],{"class":1020}," ($contacts ",[764,5691,5692],{"class":962},"as",[764,5694,5695],{"class":1020}," $contact)",[764,5697,1616],{"class":962},[764,5699,5430],{"class":962},[764,5701,5702,5704,5706],{"class":766,"line":1211},[764,5703,5521],{"class":962},[764,5705,839],{"class":785},[764,5707,5298],{"class":962},[764,5709,5710,5712,5714,5716,5718,5720,5722,5725,5727,5730,5732,5734],{"class":766,"line":1225},[764,5711,5530],{"class":962},[764,5713,857],{"class":785},[764,5715,5313],{"class":962},[764,5717,955],{"class":785},[764,5719,5318],{"class":785},[764,5721,5321],{"class":769},[764,5723,5724],{"class":1020},"($contact",[764,5726,1653],{"class":962},[764,5728,5729],{"class":1020},"name); ",[764,5731,5327],{"class":962},[764,5733,857],{"class":785},[764,5735,5298],{"class":962},[764,5737,5738,5740,5742,5744,5746,5748,5750,5752,5754,5757,5759,5761],{"class":766,"line":1238},[764,5739,5530],{"class":962},[764,5741,857],{"class":785},[764,5743,5313],{"class":962},[764,5745,955],{"class":785},[764,5747,5318],{"class":785},[764,5749,5321],{"class":769},[764,5751,5724],{"class":1020},[764,5753,1653],{"class":962},[764,5755,5756],{"class":1020},"email); ",[764,5758,5327],{"class":962},[764,5760,857],{"class":785},[764,5762,5298],{"class":962},[764,5764,5765,5767,5769,5771,5773,5775,5777,5779,5781,5784,5786,5788],{"class":766,"line":1252},[764,5766,5530],{"class":962},[764,5768,857],{"class":785},[764,5770,5313],{"class":962},[764,5772,955],{"class":785},[764,5774,5318],{"class":785},[764,5776,5321],{"class":769},[764,5778,5724],{"class":1020},[764,5780,1653],{"class":962},[764,5782,5783],{"class":1020},"phone); ",[764,5785,5327],{"class":962},[764,5787,857],{"class":785},[764,5789,5298],{"class":962},[764,5791,5792,5794,5796],{"class":766,"line":1266},[764,5793,5530],{"class":962},[764,5795,857],{"class":785},[764,5797,5298],{"class":962},[764,5799,5800,5803,5805,5807,5809,5811,5813,5815,5817,5820,5823,5825,5828,5831],{"class":766,"line":1272},[764,5801,5802],{"class":962},"                    \u003C",[764,5804,5338],{"class":785},[764,5806,5341],{"class":785},[764,5808,1027],{"class":962},[764,5810,5346],{"class":773},[764,5812,5349],{"class":1020},[764,5814,1653],{"class":962},[764,5816,2655],{"class":1020},[764,5818,5819],{"class":773},"() . '-edit&id=' . ",[764,5821,5822],{"class":1020},"$contact",[764,5824,1653],{"class":962},[764,5826,5827],{"class":1020},"id",[764,5829,5830],{"class":773},")); ?>\"",[764,5832,5298],{"class":962},[764,5834,5835,5838,5840,5842,5844,5847,5849,5851,5853,5855],{"class":766,"line":1277},[764,5836,5837],{"class":962},"                        \u003C?",[764,5839,955],{"class":785},[764,5841,5373],{"class":769},[764,5843,1021],{"class":1020},[764,5845,5846],{"class":773},"'Edit'",[764,5848,2614],{"class":1020},[764,5850,1653],{"class":962},[764,5852,2619],{"class":769},[764,5854,5386],{"class":1020},[764,5856,5281],{"class":962},[764,5858,5859,5862,5864],{"class":766,"line":1283},[764,5860,5861],{"class":962},"                    \u003C\u002F",[764,5863,5338],{"class":785},[764,5865,5298],{"class":962},[764,5867,5868,5871,5873],{"class":766,"line":1311},[764,5869,5870],{"class":962},"                \u003C\u002F",[764,5872,857],{"class":785},[764,5874,5298],{"class":962},[764,5876,5877,5879,5881],{"class":766,"line":1325},[764,5878,5655],{"class":962},[764,5880,839],{"class":785},[764,5882,5298],{"class":962},[764,5884,5885,5887,5889,5892,5894],{"class":766,"line":1331},[764,5886,5681],{"class":962},[764,5888,955],{"class":785},[764,5890,5891],{"class":962}," endforeach",[764,5893,5489],{"class":1020},[764,5895,5281],{"class":962},[764,5897,5898,5900,5902],{"class":766,"line":1336},[764,5899,5664],{"class":962},[764,5901,852],{"class":785},[764,5903,5298],{"class":962},[764,5905,5906,5908,5910],{"class":766,"line":1358},[764,5907,5393],{"class":962},[764,5909,833],{"class":785},[764,5911,5298],{"class":962},[764,5913,5914,5917,5919],{"class":766,"line":1371},[764,5915,5916],{"class":962},"\u003C\u002F",[764,5918,5289],{"class":785},[764,5920,5298],{"class":962},[705,5922,5924],{"id":5923},"step-11-update-composer-autoload","Step 11: Update Composer Autoload",[701,5926,5927,5928,5931],{},"Your ",[761,5929,5930],{},"composer.json"," should have:",[754,5933,5937],{"className":5934,"code":5935,"language":5936,"meta":759,"style":759},"language-json shiki shiki-themes github-light github-dark","{\n  \"autoload\": {\n    \"psr-4\": {\n      \"ContactManager\\\\\": \"app\u002F\"\n    }\n  }\n}\n","json",[761,5938,5939,5943,5951,5958,5969,5973,5978],{"__ignoreMap":759},[764,5940,5941],{"class":766,"line":6},[764,5942,2269],{"class":1020},[764,5944,5945,5948],{"class":766,"line":29},[764,5946,5947],{"class":785},"  \"autoload\"",[764,5949,5950],{"class":1020},": {\n",[764,5952,5953,5956],{"class":766,"line":14},[764,5954,5955],{"class":785},"    \"psr-4\"",[764,5957,5950],{"class":1020},[764,5959,5960,5963,5966],{"class":766,"line":18},[764,5961,5962],{"class":785},"      \"ContactManager\\\\\"",[764,5964,5965],{"class":1020},": ",[764,5967,5968],{"class":773},"\"app\u002F\"\n",[764,5970,5971],{"class":766,"line":70},[764,5972,1453],{"class":1020},[764,5974,5975],{"class":766,"line":74},[764,5976,5977],{"class":1020},"  }\n",[764,5979,5980],{"class":766,"line":78},[764,5981,1113],{"class":1020},[701,5983,5984],{},"Run:",[754,5986,5988],{"className":756,"code":5987,"language":758,"meta":759,"style":759},"composer dump-autoload\n",[761,5989,5990],{"__ignoreMap":759},[764,5991,5992,5994],{"class":766,"line":6},[764,5993,770],{"class":769},[764,5995,5996],{"class":773}," dump-autoload\n",[705,5998,6000],{"id":5999},"step-12-activate-and-test","Step 12: Activate and Test",[754,6002,6004],{"className":756,"code":6003,"language":758,"meta":759,"style":759},"wp plugin activate contact-manager\n",[761,6005,6006],{"__ignoreMap":759},[764,6007,6008,6011,6014,6016],{"class":766,"line":6},[764,6009,6010],{"class":769},"wp",[764,6012,6013],{"class":773}," plugin",[764,6015,4619],{"class":773},[764,6017,780],{"class":773},[701,6019,6020,6021,6024],{},"Visit ",[1462,6022,6023],{},"WordPress Admin -> Contacts"," to see your plugin.",[705,6026,6028],{"id":6027},"step-13-build-for-production","Step 13: Build for Production",[701,6030,6031],{},"When ready to distribute:",[754,6033,6035],{"className":798,"code":6034,"language":800,"meta":759,"style":759},"# Windows (PowerShell)\n.\\scaffold.ps1 build\n\n# Linux\u002FMac\n.\u002Fscaffold.sh build\n",[761,6036,6037,6041,6046,6050,6054],{"__ignoreMap":759},[764,6038,6039],{"class":766,"line":6},[764,6040,807],{},[764,6042,6043],{"class":766,"line":29},[764,6044,6045],{},".\\scaffold.ps1 build\n",[764,6047,6048],{"class":766,"line":14},[764,6049,818],{"emptyLinePlaceholder":817},[764,6051,6052],{"class":766,"line":18},[764,6053,823],{},[764,6055,6056],{"class":766,"line":70},[764,6057,6058],{},".\u002Fscaffold.sh build\n",[701,6060,6061],{},"The build pipeline:",[6063,6064,6065,6068,6071,6074,6077],"ol",{},[716,6066,6067],{},"Auto-fix code style (PSR12)",[716,6069,6070],{},"Run phpstan static analysis",[716,6072,6073],{},"Install production dependencies",[716,6075,6076],{},"Run PHP-Scoper for namespace isolation",[716,6078,6079,6080],{},"Create versioned ZIP in ",[761,6081,6082],{},"dist\u002F",[705,6084,6086],{"id":6085},"next-steps","Next Steps",[713,6088,6089,6092,6095,6105,6110],{},[716,6090,6091],{},"Add edit functionality with update controller method",[716,6093,6094],{},"Implement AJAX delete with nonce verification",[716,6096,6097,6098,6101,6102],{},"Add pagination with ",[761,6099,6100],{},"$wpdb->get_results()"," + ",[761,6103,6104],{},"LIMIT\u002FOFFSET",[716,6106,6107,6108],{},"Write unit tests for ",[761,6109,2330],{},[716,6111,6112,6113],{},"Add REST API endpoints via ",[761,6114,6115],{},"rest_api_init",[705,6117,6119],{"id":6118},"related","Related",[713,6121,6122,6128,6133],{},[716,6123,6124,6127],{},[5338,6125,6126],{"href":182},"Package Reference"," - Core package docs",[716,6129,6130,6132],{},[5338,6131,675],{"href":674}," - Testing guide",[716,6134,6135,6138],{},[5338,6136,6137],{"href":497},"Routing & Admin Pages"," - Routing docs",[6140,6141,6142],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":759,"searchDepth":29,"depth":29,"links":6144},[6145,6146,6147,6148,6149,6150,6151,6152,6153,6154,6155,6156,6157,6158,6159,6160,6161],{"id":707,"depth":29,"text":708},{"id":733,"depth":29,"text":734},{"id":751,"depth":29,"text":752},{"id":791,"depth":29,"text":792},{"id":930,"depth":29,"text":931},{"id":942,"depth":29,"text":943},{"id":1496,"depth":29,"text":1497},{"id":2165,"depth":29,"text":2166},{"id":3001,"depth":29,"text":3002},{"id":3589,"depth":29,"text":3590},{"id":4547,"depth":29,"text":4548},{"id":5223,"depth":29,"text":5224},{"id":5923,"depth":29,"text":5924},{"id":5999,"depth":29,"text":6000},{"id":6027,"depth":29,"text":6028},{"id":6085,"depth":29,"text":6086},{"id":6118,"depth":29,"text":6119},"md",{},{"title":544,"description":703},"docs\u002Flatest\u002Fscaffold\u002Fwalkthrough","5BKHftXsrifaDgQ6vrDSoV0TXXQkO6LVZrH_4Fn5kGk",[6168,6169,6170,6171,6172,6173,6174,6175,6176,6177,6178,6179,6181,6182,6183,6184,6185,6186,6187,6188,6189,6190,6192,6193,6194,6195,6196,6197,6198,6199,6200,6201,6203,6204,6205,6206,6207,6208,6209,6210,6211,6212,6214,6215,6216,6217,6218,6219,6220,6221,6222,6223,6225,6226,6227,6228,6229,6230,6231,6232,6233,6234,6236,6237,6238,6239,6240,6241,6242,6243,6244,6245,6247,6248,6249,6250,6251,6252,6253,6254,6255,6256,6258,6259,6260,6261,6262,6263,6264,6265,6266,6267,6269,6270,6271,6272,6273,6274,6275,6276,6277,6278,6280,6281,6282,6283,6284,6285,6286,6287,6288,6289,6291,6292,6293,6294,6295,6296,6297,6298,6299,6300,6302,6303,6304,6305,6306,6307,6308,6309,6310,6311,6313,6314,6315,6316,6317,6318,6319,6320,6321,6322,6324,6325,6326,6327,6328,6329,6330,6331,6333,6334,6335,6336,6337,6338,6339,6340,6341,6342,6344,6345,6346,6347,6348,6349,6350,6351,6352,6353,6355,6356,6357,6358,6359,6360,6361,6362,6363,6364,6366,6367,6368,6369,6370,6371,6372,6373,6374,6375,6377,6378,6379,6380,6381,6382,6383,6384,6385,6386,6388,6389,6390,6391,6392,6393,6394,6395,6396,6397,6398,6399,6401,6402,6403,6404,6405,6406,6407,6408,6409,6410,6411,6412,6413,6415,6416,6417,6418,6419,6420,6421,6422,6423,6424,6426,6427,6428,6429,6430,6431,6432,6433,6434,6436,6437,6438,6439,6440,6441,6442,6443,6444,6445,6447,6448,6449,6450,6451,6452,6453,6454,6455,6456,6458,6459,6460,6461,6462,6463,6464,6465,6466,6467,6468,6469,6470,6471,6472,6473,6474,6479,6483],{"path":10,"title":5,"sectionKey":7,"sectionOrder":6,"itemOrder":6,"packageName":759,"depth":6},{"path":12,"title":13,"sectionKey":7,"sectionOrder":6,"itemOrder":14,"packageName":759,"depth":29},{"path":16,"title":17,"sectionKey":7,"sectionOrder":6,"itemOrder":18,"packageName":759,"depth":29},{"path":20,"title":21,"sectionKey":7,"sectionOrder":6,"itemOrder":22,"packageName":759,"depth":29},{"path":24,"title":25,"sectionKey":7,"sectionOrder":6,"itemOrder":22,"packageName":759,"depth":29},{"path":33,"title":34,"sectionKey":30,"sectionOrder":29,"itemOrder":22,"packageName":759,"depth":29},{"path":36,"title":37,"sectionKey":30,"sectionOrder":29,"itemOrder":22,"packageName":759,"depth":29},{"path":39,"title":40,"sectionKey":30,"sectionOrder":29,"itemOrder":22,"packageName":759,"depth":29},{"path":42,"title":43,"sectionKey":30,"sectionOrder":29,"itemOrder":22,"packageName":759,"depth":29},{"path":45,"title":46,"sectionKey":30,"sectionOrder":29,"itemOrder":22,"packageName":759,"depth":29},{"path":48,"title":49,"sectionKey":30,"sectionOrder":29,"itemOrder":22,"packageName":759,"depth":29},{"path":58,"title":59,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":6180,"depth":29},"wpzylos-assets",{"path":61,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":6180,"depth":14},{"path":64,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":6180,"depth":14},{"path":66,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":6180,"depth":14},{"path":68,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":6180,"depth":14},{"path":72,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":6180,"depth":14},{"path":76,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":6180,"depth":14},{"path":80,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":6180,"depth":14},{"path":84,"title":85,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":6180,"depth":14},{"path":88,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":6180,"depth":14},{"path":93,"title":94,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":6191,"depth":29},"wpzylos-cli-core",{"path":96,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":6191,"depth":14},{"path":98,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":6191,"depth":14},{"path":100,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":6191,"depth":14},{"path":102,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":6191,"depth":14},{"path":104,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":6191,"depth":14},{"path":106,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":6191,"depth":14},{"path":108,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":6191,"depth":14},{"path":110,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":6191,"depth":14},{"path":113,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":6191,"depth":14},{"path":116,"title":117,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":6202,"depth":29},"wpzylos-cli-devtool",{"path":119,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":6202,"depth":14},{"path":121,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":6202,"depth":14},{"path":123,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":6202,"depth":14},{"path":125,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":6202,"depth":14},{"path":127,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":6202,"depth":14},{"path":129,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":6202,"depth":14},{"path":131,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":6202,"depth":14},{"path":133,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":6202,"depth":14},{"path":135,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":6202,"depth":14},{"path":138,"title":139,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":6213,"depth":29},"wpzylos-config",{"path":141,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":6213,"depth":14},{"path":143,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":6213,"depth":14},{"path":145,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":6213,"depth":14},{"path":147,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":6213,"depth":14},{"path":149,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":6213,"depth":14},{"path":151,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":6213,"depth":14},{"path":153,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":6213,"depth":14},{"path":155,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":6213,"depth":14},{"path":157,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":6213,"depth":14},{"path":160,"title":161,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":6224,"depth":29},"wpzylos-container",{"path":163,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":6224,"depth":14},{"path":165,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":6224,"depth":14},{"path":167,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":6224,"depth":14},{"path":169,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":6224,"depth":14},{"path":171,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":6224,"depth":14},{"path":173,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":6224,"depth":14},{"path":175,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":6224,"depth":14},{"path":177,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":6224,"depth":14},{"path":179,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":6224,"depth":14},{"path":182,"title":183,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":6235,"depth":29},"wpzylos-core",{"path":185,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":6235,"depth":14},{"path":187,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":6235,"depth":14},{"path":189,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":6235,"depth":14},{"path":191,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":6235,"depth":14},{"path":193,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":6235,"depth":14},{"path":195,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":6235,"depth":14},{"path":197,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":6235,"depth":14},{"path":199,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":6235,"depth":14},{"path":201,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":6235,"depth":14},{"path":204,"title":205,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":6246,"depth":29},"wpzylos-database",{"path":207,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":6246,"depth":14},{"path":209,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":6246,"depth":14},{"path":211,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":6246,"depth":14},{"path":213,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":6246,"depth":14},{"path":215,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":6246,"depth":14},{"path":217,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":6246,"depth":14},{"path":219,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":6246,"depth":14},{"path":221,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":6246,"depth":14},{"path":223,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":6246,"depth":14},{"path":226,"title":227,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":6257,"depth":29},"wpzylos-events",{"path":229,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":6257,"depth":14},{"path":231,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":6257,"depth":14},{"path":233,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":6257,"depth":14},{"path":235,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":6257,"depth":14},{"path":237,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":6257,"depth":14},{"path":239,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":6257,"depth":14},{"path":241,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":6257,"depth":14},{"path":243,"title":85,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":6257,"depth":14},{"path":245,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":6257,"depth":14},{"path":248,"title":249,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":6268,"depth":29},"wpzylos-hooks",{"path":251,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":6268,"depth":14},{"path":253,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":6268,"depth":14},{"path":255,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":6268,"depth":14},{"path":257,"title":258,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":6268,"depth":14},{"path":260,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":6268,"depth":14},{"path":262,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":6268,"depth":14},{"path":264,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":6268,"depth":14},{"path":266,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":6268,"depth":14},{"path":268,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":6268,"depth":14},{"path":271,"title":272,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":6279,"depth":29},"wpzylos-http",{"path":274,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":6279,"depth":14},{"path":276,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":6279,"depth":14},{"path":278,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":6279,"depth":14},{"path":280,"title":258,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":6279,"depth":14},{"path":282,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":6279,"depth":14},{"path":284,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":6279,"depth":14},{"path":286,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":6279,"depth":14},{"path":288,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":6279,"depth":14},{"path":290,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":6279,"depth":14},{"path":293,"title":294,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":6290,"depth":29},"wpzylos-i18n",{"path":296,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":6290,"depth":14},{"path":298,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":6290,"depth":14},{"path":300,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":6290,"depth":14},{"path":302,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":6290,"depth":14},{"path":304,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":6290,"depth":14},{"path":306,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":6290,"depth":14},{"path":308,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":6290,"depth":14},{"path":310,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":6290,"depth":14},{"path":312,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":6290,"depth":14},{"path":315,"title":316,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":6301,"depth":29},"wpzylos-logger",{"path":318,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":6301,"depth":14},{"path":320,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":6301,"depth":14},{"path":322,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":6301,"depth":14},{"path":324,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":6301,"depth":14},{"path":326,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":6301,"depth":14},{"path":328,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":6301,"depth":14},{"path":330,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":6301,"depth":14},{"path":332,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":6301,"depth":14},{"path":334,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":6301,"depth":14},{"path":337,"title":338,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":6312,"depth":29},"wpzylos-mail",{"path":340,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":6312,"depth":14},{"path":342,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":6312,"depth":14},{"path":344,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":6312,"depth":14},{"path":346,"title":258,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":6312,"depth":14},{"path":348,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":6312,"depth":14},{"path":350,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":6312,"depth":14},{"path":352,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":6312,"depth":14},{"path":354,"title":85,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":6312,"depth":14},{"path":356,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":6312,"depth":14},{"path":359,"title":360,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":6323,"depth":29},"wpzylos-mcp",{"path":362,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":6323,"depth":14},{"path":364,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":6323,"depth":14},{"path":366,"title":258,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":6323,"depth":14},{"path":368,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":6323,"depth":14},{"path":370,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":6323,"depth":14},{"path":372,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":6323,"depth":14},{"path":374,"title":375,"sectionKey":53,"sectionOrder":14,"itemOrder":22,"packageName":6323,"depth":14},{"path":378,"title":379,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":6332,"depth":29},"wpzylos-migrations",{"path":381,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":6332,"depth":14},{"path":383,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":6332,"depth":14},{"path":385,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":6332,"depth":14},{"path":387,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":6332,"depth":14},{"path":389,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":6332,"depth":14},{"path":391,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":6332,"depth":14},{"path":393,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":6332,"depth":14},{"path":395,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":6332,"depth":14},{"path":397,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":6332,"depth":14},{"path":400,"title":401,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":6343,"depth":29},"wpzylos-model",{"path":403,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":6343,"depth":14},{"path":405,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":6343,"depth":14},{"path":407,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":6343,"depth":14},{"path":409,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":6343,"depth":14},{"path":411,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":6343,"depth":14},{"path":413,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":6343,"depth":14},{"path":415,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":6343,"depth":14},{"path":417,"title":85,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":6343,"depth":14},{"path":419,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":6343,"depth":14},{"path":422,"title":423,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":6354,"depth":29},"wpzylos-notification",{"path":425,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":6354,"depth":14},{"path":427,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":6354,"depth":14},{"path":429,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":6354,"depth":14},{"path":431,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":6354,"depth":14},{"path":433,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":6354,"depth":14},{"path":435,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":6354,"depth":14},{"path":437,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":6354,"depth":14},{"path":439,"title":85,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":6354,"depth":14},{"path":441,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":6354,"depth":14},{"path":444,"title":445,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":6365,"depth":29},"wpzylos-queue",{"path":447,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":6365,"depth":14},{"path":449,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":6365,"depth":14},{"path":451,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":6365,"depth":14},{"path":453,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":6365,"depth":14},{"path":455,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":6365,"depth":14},{"path":457,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":6365,"depth":14},{"path":459,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":6365,"depth":14},{"path":461,"title":85,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":6365,"depth":14},{"path":463,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":6365,"depth":14},{"path":466,"title":467,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":6376,"depth":29},"wpzylos-requirements",{"path":469,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":6376,"depth":14},{"path":471,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":6376,"depth":14},{"path":473,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":6376,"depth":14},{"path":475,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":6376,"depth":14},{"path":477,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":6376,"depth":14},{"path":479,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":6376,"depth":14},{"path":481,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":6376,"depth":14},{"path":483,"title":85,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":6376,"depth":14},{"path":485,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":6376,"depth":14},{"path":488,"title":489,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":6387,"depth":29},"wpzylos-routing",{"path":491,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":6387,"depth":14},{"path":493,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":6387,"depth":14},{"path":495,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":6387,"depth":14},{"path":497,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":6387,"depth":14},{"path":499,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":6387,"depth":14},{"path":501,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":6387,"depth":14},{"path":503,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":6387,"depth":14},{"path":505,"title":85,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":6387,"depth":14},{"path":507,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":6387,"depth":14},{"path":509,"title":510,"sectionKey":53,"sectionOrder":14,"itemOrder":22,"packageName":6387,"depth":14},{"path":512,"title":513,"sectionKey":53,"sectionOrder":14,"itemOrder":22,"packageName":6387,"depth":14},{"path":516,"title":517,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":6400,"depth":29},"wpzylos-scaffold",{"path":519,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":6400,"depth":14},{"path":521,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":6400,"depth":14},{"path":523,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":6400,"depth":14},{"path":525,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":6400,"depth":14},{"path":527,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":6400,"depth":14},{"path":529,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":6400,"depth":14},{"path":531,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":6400,"depth":14},{"path":533,"title":534,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":6400,"depth":14},{"path":536,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":6400,"depth":14},{"path":538,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":6400,"depth":14},{"path":540,"title":541,"sectionKey":53,"sectionOrder":14,"itemOrder":22,"packageName":6400,"depth":14},{"path":543,"title":544,"sectionKey":53,"sectionOrder":14,"itemOrder":22,"packageName":6400,"depth":14},{"path":547,"title":548,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":6414,"depth":29},"wpzylos-scheduler",{"path":550,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":6414,"depth":14},{"path":552,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":6414,"depth":14},{"path":554,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":6414,"depth":14},{"path":556,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":6414,"depth":14},{"path":558,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":6414,"depth":14},{"path":560,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":6414,"depth":14},{"path":562,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":6414,"depth":14},{"path":564,"title":85,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":6414,"depth":14},{"path":566,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":6414,"depth":14},{"path":569,"title":570,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":6425,"depth":29},"wpzylos-security",{"path":572,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":6425,"depth":14},{"path":574,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":6425,"depth":14},{"path":576,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":6425,"depth":14},{"path":578,"title":258,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":6425,"depth":14},{"path":580,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":6425,"depth":14},{"path":582,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":6425,"depth":14},{"path":584,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":6425,"depth":14},{"path":586,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":6425,"depth":14},{"path":589,"title":590,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":6435,"depth":29},"wpzylos-validation",{"path":592,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":6435,"depth":14},{"path":594,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":6435,"depth":14},{"path":596,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":6435,"depth":14},{"path":598,"title":258,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":6435,"depth":14},{"path":600,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":6435,"depth":14},{"path":602,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":6435,"depth":14},{"path":604,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":6435,"depth":14},{"path":606,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":6435,"depth":14},{"path":608,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":6435,"depth":14},{"path":611,"title":612,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":6446,"depth":29},"wpzylos-views",{"path":614,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":6446,"depth":14},{"path":616,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":6446,"depth":14},{"path":618,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":6446,"depth":14},{"path":620,"title":258,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":6446,"depth":14},{"path":622,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":6446,"depth":14},{"path":624,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":6446,"depth":14},{"path":626,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":6446,"depth":14},{"path":628,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":6446,"depth":14},{"path":630,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":6446,"depth":14},{"path":633,"title":634,"sectionKey":53,"sectionOrder":14,"itemOrder":6,"packageName":6457,"depth":29},"wpzylos-wp-cli",{"path":636,"title":62,"sectionKey":53,"sectionOrder":14,"itemOrder":29,"packageName":6457,"depth":14},{"path":638,"title":13,"sectionKey":53,"sectionOrder":14,"itemOrder":14,"packageName":6457,"depth":14},{"path":640,"title":17,"sectionKey":53,"sectionOrder":14,"itemOrder":18,"packageName":6457,"depth":14},{"path":642,"title":69,"sectionKey":53,"sectionOrder":14,"itemOrder":70,"packageName":6457,"depth":14},{"path":644,"title":73,"sectionKey":53,"sectionOrder":14,"itemOrder":74,"packageName":6457,"depth":14},{"path":646,"title":77,"sectionKey":53,"sectionOrder":14,"itemOrder":78,"packageName":6457,"depth":14},{"path":648,"title":81,"sectionKey":53,"sectionOrder":14,"itemOrder":82,"packageName":6457,"depth":14},{"path":650,"title":111,"sectionKey":53,"sectionOrder":14,"itemOrder":86,"packageName":6457,"depth":14},{"path":652,"title":89,"sectionKey":53,"sectionOrder":14,"itemOrder":90,"packageName":6457,"depth":14},{"path":658,"title":659,"sectionKey":655,"sectionOrder":18,"itemOrder":6,"packageName":759,"depth":6},{"path":661,"title":544,"sectionKey":655,"sectionOrder":18,"itemOrder":22,"packageName":759,"depth":29},{"path":667,"title":668,"sectionKey":664,"sectionOrder":70,"itemOrder":29,"packageName":759,"depth":29},{"path":674,"title":675,"sectionKey":671,"sectionOrder":74,"itemOrder":29,"packageName":759,"depth":29},{"path":677,"title":678,"sectionKey":671,"sectionOrder":74,"itemOrder":22,"packageName":759,"depth":29},{"path":680,"title":681,"sectionKey":671,"sectionOrder":74,"itemOrder":22,"packageName":759,"depth":29},{"path":688,"title":689,"sectionKey":685,"sectionOrder":78,"itemOrder":29,"packageName":759,"depth":29},{"path":6475,"title":6476,"sectionKey":6477,"sectionOrder":6478,"itemOrder":90,"packageName":759,"depth":6},"\u002Fdocs\u002Flatest\u002Ftroubleshooting","System Troubleshooting","troubleshooting",99,{"path":6480,"title":6481,"sectionKey":6482,"sectionOrder":6478,"itemOrder":22,"packageName":759,"depth":6},"\u002Fdocs\u002Flatest\u002Frelease-checklist","Release Checklist","release-checklist",{"path":6484,"title":6485,"sectionKey":6486,"sectionOrder":6478,"itemOrder":22,"packageName":759,"depth":6},"\u002Fdocs\u002Flatest\u002Frules","WPZylos Framework Rules","rules",1784547675816]