diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 5d0974e775ff33ad5a27d531e74c711e4b85e3bd..c7e942964a2430daa3757fff166b47bfbff08c98 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,6 +2,7 @@ <project version="4"> <component name="ChangeListManager"> <list default="true" id="8debb13c-dec3-4d96-b552-5550bc63772b" name="Default" comment=""> + <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/README.md" beforeDir="false" afterPath="$PROJECT_DIR$/README.md" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Tests/plugins/caldera-forms" beforeDir="false" afterPath="$PROJECT_DIR$/Tests/plugins/caldera-forms" afterDir="false" /> </list> @@ -30,15 +31,19 @@ </file> <file leaf-file-name="DeleteQueryBuilder.php" pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/src/Delete/DeleteQueryBuilder.php"> - <provider selected="true" editor-type-id="text-editor" /> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="105"> + <caret line="8" column="33" selection-start-line="8" selection-start-column="15" selection-end-line="8" selection-end-column="33" /> + </state> + </provider> </entry> </file> <file leaf-file-name="README.md" pinned="false" current-in-tab="true"> <entry file="file://$PROJECT_DIR$/README.md"> <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]"> <state split_layout="FIRST"> - <first_editor relative-caret-position="281"> - <caret line="91" column="21" selection-start-line="91" selection-start-column="21" selection-end-line="91" selection-end-column="21" /> + <first_editor relative-caret-position="400"> + <caret line="152" column="31" selection-start-line="152" selection-start-column="31" selection-end-line="152" selection-end-column="31" /> </first_editor> <second_editor /> </state> @@ -48,8 +53,20 @@ <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="105"> - <caret line="8" column="107" lean-forward="true" selection-start-line="8" selection-start-column="66" selection-end-line="8" selection-end-column="107" /> + <state relative-caret-position="62"> + <caret line="8" column="46" selection-start-line="8" selection-start-column="46" selection-end-line="8" selection-end-column="46" /> + </state> + </provider> + </entry> + </file> + <file leaf-file-name="QueryBuilder.php" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/src/QueryBuilder.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="196"> + <caret line="156" lean-forward="true" selection-start-line="156" selection-end-line="156" /> + <folding> + <element signature="e#48#101#0#PHP" expanded="true" /> + </folding> </state> </provider> </entry> @@ -58,11 +75,20 @@ </split-first> <split-second> <leaf> - <file leaf-file-name="FeatureContainer.php" pinned="false" current-in-tab="true"> + <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="357"> - <caret line="320" column="7" selection-start-line="320" selection-start-column="7" selection-end-line="320" selection-end-column="7" /> + <state relative-caret-position="229"> + <caret line="312" column="16" selection-start-line="312" selection-start-column="16" selection-end-line="312" selection-end-column="16" /> + </state> + </provider> + </entry> + </file> + <file leaf-file-name="Queries.php" pinned="false" current-in-tab="true"> + <entry file="file://$PROJECT_DIR$/src/Features/Queries.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="313"> + <caret line="45" column="20" selection-start-line="45" selection-start-column="20" selection-end-line="45" selection-end-column="20" /> </state> </provider> </entry> @@ -89,6 +115,8 @@ <find><</find> <find>></find> <find>selectByFieldValue</find> + <find>select(</find> + <find>Delete</find> </findStrings> </component> <component name="Git.Settings"> @@ -275,7 +303,7 @@ <servers /> </component> <component name="TimeTrackingManager"> - <option name="totallyTimeSpent" value="15118000" /> + <option name="totallyTimeSpent" value="17707000" /> </component> <component name="ToolWindowManager"> <frame x="0" y="23" width="1920" height="1057" extended-state="0" /> @@ -573,9 +601,6 @@ </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/src/Delete/DeleteQueryBuilder.php"> - <provider selected="true" editor-type-id="text-editor" /> - </entry> <entry file="file://$PROJECT_DIR$/src/Delete/EntryValues.php"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="103"> @@ -583,13 +608,6 @@ </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/src/Features/Queries.php"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="1151"> - <caret line="88" column="20" selection-start-line="88" selection-start-column="20" selection-end-line="88" selection-end-column="20" /> - </state> - </provider> - </entry> <entry file="file://$PROJECT_DIR$/src/Select/DoesSelectQuery.php"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="210"> @@ -625,42 +643,56 @@ </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/src/Features/FeatureContainer.php"> + <entry file="file://$APPLICATION_CONFIG_DIR$/scratches/scratch.php"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="357"> - <caret line="320" column="7" selection-start-line="320" selection-start-column="7" selection-end-line="320" selection-end-column="7" /> + <state relative-caret-position="105"> + <caret line="7" selection-start-line="7" selection-end-line="12" selection-end-column="27" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/Select/SelectQueryBuilder.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="62"> + <caret line="8" column="46" selection-start-line="8" selection-start-column="46" selection-end-line="8" selection-end-column="46" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/src/QueryBuilder.php"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="57"> - <caret line="5" column="4" lean-forward="true" selection-start-line="5" selection-start-column="4" selection-end-line="5" selection-end-column="4" /> + <state relative-caret-position="196"> + <caret line="156" lean-forward="true" selection-start-line="156" selection-end-line="156" /> <folding> <element signature="e#48#101#0#PHP" expanded="true" /> </folding> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/src/Select/SelectQueryBuilder.php"> + <entry file="file://$PROJECT_DIR$/src/Features/FeatureContainer.php"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="105"> - <caret line="8" column="107" lean-forward="true" selection-start-line="8" selection-start-column="66" selection-end-line="8" selection-end-column="107" /> + <state relative-caret-position="229"> + <caret line="312" column="16" selection-start-line="312" selection-start-column="16" selection-end-line="312" selection-end-column="16" /> </state> </provider> </entry> - <entry file="file://$APPLICATION_CONFIG_DIR$/scratches/scratch.php"> + <entry file="file://$PROJECT_DIR$/src/Features/Queries.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="313"> + <caret line="45" column="20" selection-start-line="45" selection-start-column="20" selection-end-line="45" selection-end-column="20" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/Delete/DeleteQueryBuilder.php"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="105"> - <caret line="7" selection-start-line="7" selection-end-line="12" selection-end-column="27" /> + <caret line="8" column="33" selection-start-line="8" selection-start-column="15" selection-end-line="8" selection-end-column="33" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/README.md"> <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]"> <state split_layout="FIRST"> - <first_editor relative-caret-position="281"> - <caret line="91" column="21" selection-start-line="91" selection-start-column="21" selection-end-line="91" selection-end-column="21" /> + <first_editor relative-caret-position="400"> + <caret line="152" column="31" selection-start-line="152" selection-start-column="31" selection-end-line="152" selection-end-column="31" /> </first_editor> <second_editor /> </state> diff --git a/README.md b/README.md index 4e9edf0620e2259664c974a2a894817f3ae46fe9..c3bb8e1ce467e7601b4083a122fc647bf69b8038 100644 --- a/README.md +++ b/README.md @@ -124,6 +124,39 @@ Select query generators extend `\calderawp\CalderaFormsQuery\Select\SelectQueryB * `in()` + +### Using Query Generators To Perform SQL Queries + +#### SELECT +The `getQueries()` method of the `FeatureContainer` returns a `calderawp\CalderaFormsQuery\Features\Queries` instance. This provides us with a `select` method when passed a `SelectQueryBuilder` returns an array of `stdClass` object of results. + + +```php + $featureContainer = \calderawp\CalderaFormsQueries\CalderaFormsQueries(); + $entryValueSelect = $featureContainer + ->getQueries() + ->entryValuesSelect() + ->is( 'size', 'large' ); + + $featureContainer->getQueries()->select( $entryValueSelect ); +``` + +You can also access the generated SQL as a string. + +```php + + $featureContainer = \calderawp\CalderaFormsQueries\CalderaFormsQueries(); + $sql = $featureContainer + ->getQueries() + ->entryValuesSelect() + ->is( 'size', 'large' ) + ->getPreparedSql(); +``` + +#### DELETE +The `Queries` class also has a `delete` method we can pass a `DeleteQueryBuilder` to perform a DELETE query against the database. + + ## Development ### Install Requires git and Composer @@ -159,6 +192,10 @@ Run these commands from the plugin's root directory. - `composer wp-tests` * Fix All Code Formatting - `composer formatting` + + +## WordPress and Caldera Forms Dependency +For now, this library is dependent on Caldera Forms and WordPress (for `\WPDB`.) This will change, possibly with breaking changes, when [caldera-interop](https://github.com/CalderaWP/caldera-interop) is integrated with this tool. ## Stuff. Copyright 2018 CalderaWP LLC. License: GPL v2 or later.