From 13509bcb69519c10116b606cde83c4793e9882b1 Mon Sep 17 00:00:00 2001 From: Josh Pollock <jpollock412@gmail.com> Date: Mon, 14 May 2018 13:31:16 -0400 Subject: [PATCH] refactor entryValues to use new interfaces --- .idea/caldera-forms-query.iml | 47 +++ .idea/misc.xml | 6 + .idea/modules.xml | 8 + .idea/php.xml | 43 +++ .idea/vcs.xml | 6 + .idea/workspace.xml | 408 ++++++++++++++++++++++++ .vscode/launch.json | 26 ++ src/Select/DoesSelectQuery.php | 1 + src/Select/DoesSelectQueryByEntryId.php | 29 ++ src/Select/DoesSelectQueryByValue.php | 32 ++ src/Select/EntryValues.php | 40 ++- 11 files changed, 625 insertions(+), 21 deletions(-) create mode 100644 .idea/caldera-forms-query.iml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/php.xml create mode 100644 .idea/vcs.xml create mode 100644 .idea/workspace.xml create mode 100644 .vscode/launch.json create mode 100644 src/Select/DoesSelectQueryByEntryId.php create mode 100644 src/Select/DoesSelectQueryByValue.php diff --git a/.idea/caldera-forms-query.iml b/.idea/caldera-forms-query.iml new file mode 100644 index 0000000..3c85de6 --- /dev/null +++ b/.idea/caldera-forms-query.iml @@ -0,0 +1,47 @@ +<?xml version="1.0" encoding="UTF-8"?> +<module type="WEB_MODULE" version="4"> + <component name="NewModuleRootManager"> + <content url="file://$MODULE_DIR$"> + <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" packagePrefix="calderawp\CalderaFormsQuery\" /> + <sourceFolder url="file://$MODULE_DIR$/Tests" isTestSource="true" packagePrefix="calderawp\CalderaFormsQuery\Tests\" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/calderawp/caldera-containers" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/composer" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/instantiator" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/jakub-onderka/php-parallel-lint" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/myclabs/deep-copy" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/nilportugues/sql-query-builder" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/nilportugues/sql-query-formatter" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/phar-io/manifest" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/phar-io/version" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/phpdocumentor/reflection-common" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/phpdocumentor/reflection-docblock" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/phpdocumentor/type-resolver" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/phpspec/prophecy" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-code-coverage" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-file-iterator" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-text-template" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-timer" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-token-stream" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/phpunit" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/phpunit-mock-objects" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/pimple/pimple" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/psr/container" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/code-unit-reverse-lookup" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/comparator" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/diff" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/environment" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/exporter" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/global-state" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/object-enumerator" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/object-reflector" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/recursion-context" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/resource-operations" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/version" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/squizlabs/php_codesniffer" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/theseer/tokenizer" /> + <excludeFolder url="file://$MODULE_DIR$/vendor/webmozart/assert" /> + </content> + <orderEntry type="inheritedJdk" /> + <orderEntry type="sourceFolder" forTests="false" /> + </component> +</module> \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..28a804d --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="JavaScriptSettings"> + <option name="languageLevel" value="ES6" /> + </component> +</project> \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..44c7078 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectModuleManager"> + <modules> + <module fileurl="file://$PROJECT_DIR$/.idea/caldera-forms-query.iml" filepath="$PROJECT_DIR$/.idea/caldera-forms-query.iml" /> + </modules> + </component> +</project> \ No newline at end of file diff --git a/.idea/php.xml b/.idea/php.xml new file mode 100644 index 0000000..fc36ed1 --- /dev/null +++ b/.idea/php.xml @@ -0,0 +1,43 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="PhpIncludePathManager"> + <include_path> + <path value="$PROJECT_DIR$/vendor/composer" /> + <path value="$PROJECT_DIR$/vendor/psr/container" /> + <path value="$PROJECT_DIR$/vendor/pimple/pimple" /> + <path value="$PROJECT_DIR$/vendor/myclabs/deep-copy" /> + <path value="$PROJECT_DIR$/vendor/phar-io/manifest" /> + <path value="$PROJECT_DIR$/vendor/phar-io/version" /> + <path value="$PROJECT_DIR$/vendor/phpspec/prophecy" /> + <path value="$PROJECT_DIR$/vendor/phpunit/php-timer" /> + <path value="$PROJECT_DIR$/vendor/phpunit/php-file-iterator" /> + <path value="$PROJECT_DIR$/vendor/phpunit/php-text-template" /> + <path value="$PROJECT_DIR$/vendor/phpunit/php-token-stream" /> + <path value="$PROJECT_DIR$/vendor/phpunit/phpunit-mock-objects" /> + <path value="$PROJECT_DIR$/vendor/phpunit/php-code-coverage" /> + <path value="$PROJECT_DIR$/vendor/phpunit/phpunit" /> + <path value="$PROJECT_DIR$/vendor/theseer/tokenizer" /> + <path value="$PROJECT_DIR$/vendor/doctrine/instantiator" /> + <path value="$PROJECT_DIR$/vendor/calderawp/caldera-containers" /> + <path value="$PROJECT_DIR$/vendor/sebastian/global-state" /> + <path value="$PROJECT_DIR$/vendor/sebastian/comparator" /> + <path value="$PROJECT_DIR$/vendor/sebastian/environment" /> + <path value="$PROJECT_DIR$/vendor/sebastian/exporter" /> + <path value="$PROJECT_DIR$/vendor/sebastian/recursion-context" /> + <path value="$PROJECT_DIR$/vendor/sebastian/object-enumerator" /> + <path value="$PROJECT_DIR$/vendor/sebastian/object-reflector" /> + <path value="$PROJECT_DIR$/vendor/sebastian/resource-operations" /> + <path value="$PROJECT_DIR$/vendor/sebastian/code-unit-reverse-lookup" /> + <path value="$PROJECT_DIR$/vendor/sebastian/diff" /> + <path value="$PROJECT_DIR$/vendor/sebastian/version" /> + <path value="$PROJECT_DIR$/vendor/squizlabs/php_codesniffer" /> + <path value="$PROJECT_DIR$/vendor/webmozart/assert" /> + <path value="$PROJECT_DIR$/vendor/nilportugues/sql-query-builder" /> + <path value="$PROJECT_DIR$/vendor/nilportugues/sql-query-formatter" /> + <path value="$PROJECT_DIR$/vendor/jakub-onderka/php-parallel-lint" /> + <path value="$PROJECT_DIR$/vendor/phpdocumentor/reflection-docblock" /> + <path value="$PROJECT_DIR$/vendor/phpdocumentor/type-resolver" /> + <path value="$PROJECT_DIR$/vendor/phpdocumentor/reflection-common" /> + </include_path> + </component> +</project> \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="$PROJECT_DIR$" vcs="Git" /> + </component> +</project> \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 0000000..90f6bf2 --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,408 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ChangeListManager"> + <list default="true" id="8debb13c-dec3-4d96-b552-5550bc63772b" name="Default" comment=""> + <change afterPath="$PROJECT_DIR$/.idea/php.xml" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/src/Select/DoesSelectQueryByEntryId.php" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/src/Select/DoesSelectQueryByValue.php" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/src/Select/DoesSelectQuery.php" beforeDir="false" afterPath="$PROJECT_DIR$/src/Select/DoesSelectQuery.php" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/src/Select/EntryValues.php" beforeDir="false" afterPath="$PROJECT_DIR$/src/Select/EntryValues.php" afterDir="false" /> + </list> + <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> + <option name="TRACKING_ENABLED" value="true" /> + <option name="SHOW_DIALOG" value="false" /> + <option name="HIGHLIGHT_CONFLICTS" value="true" /> + <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> + <option name="LAST_RESOLUTION" value="IGNORE" /> + </component> + <component name="ComposerSettings" synchronizationState="SYNCHRONIZE"> + <pharConfigPath>$PROJECT_DIR$/composer.json</pharConfigPath> + </component> + <component name="FileEditorManager"> + <splitter split-orientation="horizontal" split-proportion="0.5078864"> + <split-first> + <leaf> + <file leaf-file-name="FeatureContainer.php" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/src/Features/FeatureContainer.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="609"> + <caret line="70" column="29" lean-forward="true" selection-start-line="70" selection-start-column="29" selection-end-line="70" selection-end-column="29" /> + <folding> + <element signature="e#57#99#0#PHP" expanded="true" /> + </folding> + </state> + </provider> + </entry> + </file> + <file leaf-file-name="DeleteQueries.php" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/src/DeleteQueries.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="576"> + <caret line="60" lean-forward="true" selection-start-line="60" selection-end-line="60" /> + </state> + </provider> + </entry> + </file> + <file leaf-file-name="EntryValues.php" pinned="false" current-in-tab="true"> + <entry file="file://$PROJECT_DIR$/src/Select/EntryValues.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="397"> + <caret line="59" column="22" selection-start-line="59" selection-start-column="22" selection-end-line="59" selection-end-column="22" /> + </state> + </provider> + </entry> + </file> + <file leaf-file-name="DoesSelectQuery.php" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/src/Select/DoesSelectQuery.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="105"> + <caret line="7" column="25" selection-start-line="7" selection-start-column="10" selection-end-line="7" selection-end-column="25" /> + </state> + </provider> + </entry> + </file> + <file leaf-file-name="SelectQueryBuilder.php" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/src/Select/SelectQueryBuilder.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="663"> + <caret line="59" column="91" lean-forward="true" selection-start-line="59" selection-start-column="91" selection-end-line="59" selection-end-column="91" /> + </state> + </provider> + </entry> + </file> + <file leaf-file-name="DoesSelectQueryByValue.php" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/src/Select/DoesSelectQueryByValue.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="150"> + <caret line="10" column="32" selection-start-line="10" selection-start-column="10" selection-end-line="10" selection-end-column="32" /> + </state> + </provider> + </entry> + </file> + <file leaf-file-name="Entry.php" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/src/Select/Entry.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="23"> + <caret line="9" column="33" lean-forward="true" selection-start-line="9" selection-start-column="33" selection-end-line="9" selection-end-column="33" /> + </state> + </provider> + </entry> + </file> + <file leaf-file-name="SelectQueries.php" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/src/SelectQueries.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="229"> + <caret line="35" column="20" selection-start-line="35" selection-start-column="20" selection-end-line="35" selection-end-column="20" /> + </state> + </provider> + </entry> + </file> + </leaf> + </split-first> + <split-second> + <leaf> + <file leaf-file-name="DoesSelectQueryByEntryId.php" pinned="false" current-in-tab="true"> + <entry file="file://$PROJECT_DIR$/src/Select/DoesSelectQueryByEntryId.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="390"> + <caret line="26" column="36" selection-start-line="26" selection-start-column="36" selection-end-line="26" selection-end-column="36" /> + </state> + </provider> + </entry> + </file> + </leaf> + </split-second> + </splitter> + </component> + <component name="FindInProjectRecents"> + <findStrings> + <find>table</find> + </findStrings> + </component> + <component name="Git.Settings"> + <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> + </component> + <component name="IdeDocumentHistory"> + <option name="CHANGED_PATHS"> + <list> + <option value="$PROJECT_DIR$/src/DeleteQueries.php" /> + <option value="$PROJECT_DIR$/src/Select/DoesSelectQuery.php" /> + <option value="$PROJECT_DIR$/src/Select/DoesSelectQueryByValue.php" /> + <option value="$PROJECT_DIR$/src/Select/DoesSelectQueryByEntryId.php" /> + <option value="$PROJECT_DIR$/src/Select/EntryValues.php" /> + </list> + </option> + </component> + <component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER"> + <gruntfile path="$PROJECT_DIR$/Gruntfile.js" /> + </component> + <component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" /> + <component name="JsGulpfileManager"> + <detection-done>true</detection-done> + <sorting>DEFINITION_ORDER</sorting> + </component> + <component name="NodePackageJsonFileManager"> + <packageJsonPaths> + <path value="$PROJECT_DIR$/Tests/plugins/caldera-forms/includes/freemius/package.json" /> + <path value="$PROJECT_DIR$/Tests/plugins/caldera-forms/package.json" /> + <path value="$PROJECT_DIR$/package.json" /> + </packageJsonPaths> + </component> + <component name="PhpServers"> + <servers /> + </component> + <component name="PhpWorkspaceProjectConfiguration"> + <include_path> + <path value="$PROJECT_DIR$/vendor/composer" /> + <path value="$PROJECT_DIR$/vendor/psr/container" /> + <path value="$PROJECT_DIR$/vendor/pimple/pimple" /> + <path value="$PROJECT_DIR$/vendor/myclabs/deep-copy" /> + <path value="$PROJECT_DIR$/vendor/phar-io/manifest" /> + <path value="$PROJECT_DIR$/vendor/phar-io/version" /> + <path value="$PROJECT_DIR$/vendor/phpspec/prophecy" /> + <path value="$PROJECT_DIR$/vendor/phpunit/php-timer" /> + <path value="$PROJECT_DIR$/vendor/phpunit/php-file-iterator" /> + <path value="$PROJECT_DIR$/vendor/phpunit/php-text-template" /> + <path value="$PROJECT_DIR$/vendor/phpunit/php-token-stream" /> + <path value="$PROJECT_DIR$/vendor/phpunit/phpunit-mock-objects" /> + <path value="$PROJECT_DIR$/vendor/phpunit/php-code-coverage" /> + <path value="$PROJECT_DIR$/vendor/phpunit/phpunit" /> + <path value="$PROJECT_DIR$/vendor/theseer/tokenizer" /> + <path value="$PROJECT_DIR$/vendor/doctrine/instantiator" /> + <path value="$PROJECT_DIR$/vendor/calderawp/caldera-containers" /> + <path value="$PROJECT_DIR$/vendor/sebastian/global-state" /> + <path value="$PROJECT_DIR$/vendor/sebastian/comparator" /> + <path value="$PROJECT_DIR$/vendor/sebastian/environment" /> + <path value="$PROJECT_DIR$/vendor/sebastian/exporter" /> + <path value="$PROJECT_DIR$/vendor/sebastian/recursion-context" /> + <path value="$PROJECT_DIR$/vendor/sebastian/object-enumerator" /> + <path value="$PROJECT_DIR$/vendor/sebastian/object-reflector" /> + <path value="$PROJECT_DIR$/vendor/sebastian/resource-operations" /> + <path value="$PROJECT_DIR$/vendor/sebastian/code-unit-reverse-lookup" /> + <path value="$PROJECT_DIR$/vendor/sebastian/diff" /> + <path value="$PROJECT_DIR$/vendor/sebastian/version" /> + <path value="$PROJECT_DIR$/vendor/squizlabs/php_codesniffer" /> + <path value="$PROJECT_DIR$/vendor/webmozart/assert" /> + <path value="$PROJECT_DIR$/vendor/nilportugues/sql-query-builder" /> + <path value="$PROJECT_DIR$/vendor/nilportugues/sql-query-formatter" /> + <path value="$PROJECT_DIR$/vendor/jakub-onderka/php-parallel-lint" /> + <path value="$PROJECT_DIR$/vendor/phpdocumentor/reflection-docblock" /> + <path value="$PROJECT_DIR$/vendor/phpdocumentor/type-resolver" /> + <path value="$PROJECT_DIR$/vendor/phpdocumentor/reflection-common" /> + </include_path> + </component> + <component name="ProjectFrameBounds"> + <option name="x" value="260" /> + <option name="y" value="43" /> + <option name="width" value="1660" /> + <option name="height" value="937" /> + </component> + <component name="ProjectLevelVcsManager"> + <ConfirmationsSetting value="2" id="Add" /> + </component> + <component name="ProjectView"> + <navigator proportions="" version="1"> + <foldersAlwaysOnTop value="true" /> + </navigator> + <panes> + <pane id="ProjectPane"> + <subPane> + <expand> + <path> + <item name="caldera-forms-query" type="b2602c69:ProjectViewProjectNode" /> + <item name="caldera-forms-query" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="caldera-forms-query" type="b2602c69:ProjectViewProjectNode" /> + <item name="caldera-forms-query" type="462c0819:PsiDirectoryNode" /> + <item name="src" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="caldera-forms-query" type="b2602c69:ProjectViewProjectNode" /> + <item name="caldera-forms-query" type="462c0819:PsiDirectoryNode" /> + <item name="src" type="462c0819:PsiDirectoryNode" /> + <item name="Exceptions" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="caldera-forms-query" type="b2602c69:ProjectViewProjectNode" /> + <item name="caldera-forms-query" type="462c0819:PsiDirectoryNode" /> + <item name="src" type="462c0819:PsiDirectoryNode" /> + <item name="Features" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="caldera-forms-query" type="b2602c69:ProjectViewProjectNode" /> + <item name="caldera-forms-query" type="462c0819:PsiDirectoryNode" /> + <item name="src" type="462c0819:PsiDirectoryNode" /> + <item name="Select" type="462c0819:PsiDirectoryNode" /> + </path> + </expand> + <select /> + </subPane> + </pane> + <pane id="Scope" /> + </panes> + </component> + <component name="PropertiesComponent"> + <property name="WebServerToolWindowFactoryState" value="false" /> + <property name="nodejs_package_manager_path" value="npm" /> + <property name="settings.editor.selected.configurable" value="fileTemplates" /> + </component> + <component name="RunDashboard"> + <option name="ruleStates"> + <list> + <RuleState> + <option name="name" value="ConfigurationTypeDashboardGroupingRule" /> + </RuleState> + <RuleState> + <option name="name" value="StatusDashboardGroupingRule" /> + </RuleState> + </list> + </option> + </component> + <component name="SvnConfiguration"> + <configuration /> + </component> + <component name="TaskManager"> + <task active="true" id="Default" summary="Default task"> + <changelist id="8debb13c-dec3-4d96-b552-5550bc63772b" name="Default" comment="" /> + <created>1526182556614</created> + <option name="number" value="Default" /> + <option name="presentableId" value="Default" /> + <updated>1526182556614</updated> + <workItem from="1526182558454" duration="2632000" /> + </task> + <servers /> + </component> + <component name="TimeTrackingManager"> + <option name="totallyTimeSpent" value="2632000" /> + </component> + <component name="ToolWindowManager"> + <frame x="260" y="43" width="1660" height="937" extended-state="0" /> + <editor active="true" /> + <layout> + <window_info anchor="bottom" id="TODO" order="6" /> + <window_info anchor="bottom" id="Event Log" side_tool="true" /> + <window_info anchor="bottom" id="Database Changes" show_stripe_button="false" /> + <window_info anchor="bottom" id="Run" order="2" /> + <window_info anchor="bottom" id="Version Control" /> + <window_info active="true" anchor="bottom" id="Terminal" visible="true" weight="0.14761905" /> + <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.21631645" /> + <window_info anchor="bottom" id="Docker" show_stripe_button="false" /> + <window_info id="Grunt " side_tool="true" /> + <window_info anchor="right" id="Database" /> + <window_info id="Structure" order="1" side_tool="true" weight="0.25" /> + <window_info anchor="bottom" id="Debug" order="3" weight="0.4" /> + <window_info id="Favorites" side_tool="true" /> + <window_info anchor="bottom" id="Find" order="1" /> + <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" /> + <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" /> + <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" /> + <window_info anchor="right" id="Ant Build" order="1" weight="0.25" /> + <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" /> + <window_info anchor="bottom" id="Message" order="0" /> + </layout> + </component> + <component name="TypeScriptGeneratedFilesManager"> + <option name="version" value="1" /> + </component> + <component name="VcsContentAnnotationSettings"> + <option name="myLimit" value="2678400000" /> + </component> + <component name="editorHistoryManager"> + <entry file="file://$PROJECT_DIR$/src/QueryBuilder.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="784"> + <caret line="63" column="20" selection-start-line="63" selection-start-column="20" selection-end-line="63" selection-end-column="20" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/Features/DoesQueries.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="75"> + <caret line="5" column="10" selection-start-line="5" selection-start-column="10" selection-end-line="5" selection-end-column="10" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/Features/Queries.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="-185"> + <caret line="17" column="28" selection-start-line="17" selection-start-column="28" selection-end-line="17" selection-end-column="28" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/CreatesSelectQueries.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="180"> + <caret line="13" column="10" selection-start-line="13" selection-start-column="10" selection-end-line="13" selection-end-column="10" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/SelectQueries.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="229"> + <caret line="35" column="20" selection-start-line="35" selection-start-column="20" selection-end-line="35" selection-end-column="20" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/Features/FeatureContainer.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="609"> + <caret line="70" column="29" lean-forward="true" selection-start-line="70" selection-start-column="29" selection-end-line="70" selection-end-column="29" /> + <folding> + <element signature="e#57#99#0#PHP" expanded="true" /> + </folding> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/DeleteQueries.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="576"> + <caret line="60" lean-forward="true" selection-start-line="60" selection-end-line="60" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/Select/Entry.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="23"> + <caret line="9" column="33" lean-forward="true" selection-start-line="9" selection-start-column="33" selection-end-line="9" selection-end-column="33" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/Select/DoesSelectQueryByValue.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="150"> + <caret line="10" column="32" selection-start-line="10" selection-start-column="10" selection-end-line="10" selection-end-column="32" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/Select/SelectQueryBuilder.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="663"> + <caret line="59" column="91" lean-forward="true" selection-start-line="59" selection-start-column="91" selection-end-line="59" selection-end-column="91" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/Select/DoesSelectQuery.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="105"> + <caret line="7" column="25" selection-start-line="7" selection-start-column="10" selection-end-line="7" selection-end-column="25" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/Select/DoesSelectQueryByEntryId.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="390"> + <caret line="26" column="36" selection-start-line="26" selection-start-column="36" selection-end-line="26" selection-end-column="36" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/Select/EntryValues.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="397"> + <caret line="59" column="22" selection-start-line="59" selection-start-column="22" selection-end-line="59" selection-end-column="22" /> + </state> + </provider> + </entry> + </component> +</project> \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..4415a23 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,26 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "Listen for XDebug", + "type": "php", + "request": "launch", + "port": 9000, + "stopOnEntry": true, + + }, + { + "name": "Launch currently open script", + "type": "php", + "request": "launch", + "program": "${file}", + "cwd": "${fileDirname}", + "port": 9000, + "stopOnEntry": true, + + } + ] +} \ No newline at end of file diff --git a/src/Select/DoesSelectQuery.php b/src/Select/DoesSelectQuery.php index 4b8b929..9262a19 100644 --- a/src/Select/DoesSelectQuery.php +++ b/src/Select/DoesSelectQuery.php @@ -14,4 +14,5 @@ interface DoesSelectQuery * @return Select */ public function getSelectQuery(); + } diff --git a/src/Select/DoesSelectQueryByEntryId.php b/src/Select/DoesSelectQueryByEntryId.php new file mode 100644 index 0000000..231a72e --- /dev/null +++ b/src/Select/DoesSelectQueryByEntryId.php @@ -0,0 +1,29 @@ +<?php + +namespace calderawp\CalderaFormsQuery\Select; + +/** + * Interface DoesSelectQueryByEntryId + * + * Interface that any class that selects by entry ID MUST implement. + */ +interface DoesSelectQueryByEntryId +{ + + + /** + * Create query by entry ID + * + * @param $entryId + * @return $this + */ + public function queryByEntryId($entryId); + + /** + * Get name of ID column + * + * @return string + */ + public function getEntryIdColumn(); + +} diff --git a/src/Select/DoesSelectQueryByValue.php b/src/Select/DoesSelectQueryByValue.php new file mode 100644 index 0000000..d73d494 --- /dev/null +++ b/src/Select/DoesSelectQueryByValue.php @@ -0,0 +1,32 @@ +<?php + + +namespace calderawp\CalderaFormsQuery\Select; + +/** + * Interface DoesSelectQueryByValue + * + * Interface that select query classes that query by field value MUST Impliment + */ +interface DoesSelectQueryByValue +{ + + /** + * Create query for entry values with a field whose value equals, doesn't equal or is like (SQL LIKE) a value + * + * @param string $fieldSlug Field slug + * @param string $fieldValue Field value + * @param string $type Optional. Type of comparison. Values: equals|notEquals|like Default: 'equals' + * @param string $whereOperator Optional. Type of where. Default is 'AND'. Any valid WHERE operator is accepted + * @param array $columns Optional. Array of columns to select. Leave empty to select * + * @return $this + */ + public function queryByFieldValue($fieldSlug, $fieldValue, $type = 'equals', $whereOperator = 'AND', $columns = []); + + /** + * Get column name for value lookups + * + * @return string + */ + public function getValueColumn(); +} diff --git a/src/Select/EntryValues.php b/src/Select/EntryValues.php index a367a36..99c0ffc 100644 --- a/src/Select/EntryValues.php +++ b/src/Select/EntryValues.php @@ -3,36 +3,22 @@ namespace calderawp\CalderaFormsQuery\Select; -class EntryValues extends SelectQueryBuilder +class EntryValues extends SelectQueryBuilder implements DoesSelectQueryByValue, DoesSelectQueryByEntryId { - /** - * Create query by entry ID - * - * @param $entryId - * @return $this - */ + /** @inheritdoc */ public function queryByEntryId($entryId) { $this ->getSelectQuery() ->where() - ->equals('entry_id', $entryId) + ->equals($this->getEntryIdColumn(), $entryId) ; return $this; } - /** - * Create query for entry values with a field whose value equals, doesn't equal or is like (SQL LIKE) a value - * - * @param string $fieldSlug Field slug - * @param string $fieldValue Field value - * @param string $type Optional. Type of comparison. Values: equals|notEquals|like Default: 'equals' - * @param string $whereOperator Optional. Type of where. Default is 'AND'. Any valid WHERE operator is accepted - * @param array $columns Optional. Array of columns to select. Leave empty to select * - * @return $this - */ + /** @inheritdoc */ public function queryByFieldValue($fieldSlug, $fieldValue, $type = 'equals', $whereOperator = 'AND', $columns = []) { if (! empty($columns)) { @@ -45,20 +31,20 @@ class EntryValues extends SelectQueryBuilder $this ->getSelectQuery() ->where($whereOperator) - ->equals('value', $fieldValue) + ->equals($this->getValueColumn(), $fieldValue) ; break; case 'notEquals': $this-> getSelectQuery() ->where($whereOperator) - ->notEquals('value', $fieldValue); + ->notEquals($this->getValueColumn(), $fieldValue); break; case 'like': $this-> getSelectQuery() ->where($whereOperator) - ->like('value', $fieldValue); + ->like($this->getValueColumn(), $fieldValue); break; } @@ -70,4 +56,16 @@ class EntryValues extends SelectQueryBuilder return $this; } + + /** @inheritdoc */ + public function getValueColumn() + { + return 'value'; + } + + /** @inheritdoc */ + public function getEntryIdColumn() + { + return 'entry_id'; + } } -- GitLab