diff --git a/.idea/php.xml b/.idea/php.xml index fc36ed1ffbc4edaefdc2ef34322b9df0c6ce5d65..39cb93287ba28f41bace2feb274f0529e8c72e1f 100644 --- a/.idea/php.xml +++ b/.idea/php.xml @@ -40,4 +40,9 @@ <path value="$PROJECT_DIR$/vendor/phpdocumentor/reflection-common" /> </include_path> </component> + <component name="PhpUnit"> + <phpunit_settings> + <PhpUnitSettings load_method="CUSTOM_LOADER" custom_loader_path="$PROJECT_DIR$/vendor/autoload.php" /> + </phpunit_settings> + </component> </project> \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 7d9f6af4797da3aa6540b7792daccf37c232f2d2..054b0202d9e67e68e8f5a441dea419e7c2123a71 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,10 +2,11 @@ <project version="4"> <component name="ChangeListManager"> <list default="true" id="8debb13c-dec3-4d96-b552-5550bc63772b" name="Default" comment=""> - <change afterPath="$PROJECT_DIR$/src/Select/ValueSelectQueryBuilder.php" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/.idea/php.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/php.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/src/Select/Entry.php" beforeDir="false" afterPath="$PROJECT_DIR$/src/Select/Entry.php" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/src/Select/EntryValues.php" beforeDir="false" afterPath="$PROJECT_DIR$/src/Select/EntryValues.php" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/Tests/Unit/Select/EntryTest.php" beforeDir="false" afterPath="$PROJECT_DIR$/Tests/Unit/Select/EntryTest.php" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/Tests/Unit/SelectQueriesTest.php" beforeDir="false" afterPath="$PROJECT_DIR$/Tests/Unit/SelectQueriesTest.php" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/composer.lock" beforeDir="false" afterPath="$PROJECT_DIR$/composer.lock" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/Select/SelectQueryBuilder.php" beforeDir="false" afterPath="$PROJECT_DIR$/src/Select/SelectQueryBuilder.php" afterDir="false" /> </list> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> @@ -15,79 +16,76 @@ <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> <option name="LAST_RESOLUTION" value="IGNORE" /> </component> - <component name="ComposerSettings" synchronizationState="SYNCHRONIZE"> + <component name="ComposerSettings" doNotAsk="true" synchronizationState="SYNCHRONIZE"> <pharConfigPath>$PROJECT_DIR$/composer.json</pharConfigPath> </component> <component name="FileEditorManager"> - <splitter split-orientation="horizontal" split-proportion="0.6553628"> + <splitter split-orientation="horizontal" split-proportion="0.62331575"> <split-first> - <leaf> - <file leaf-file-name="FeatureContainer.php" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/src/Features/FeatureContainer.php"> + <leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> + <file leaf-file-name="DoesSelectQueryByEntryId.php" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/src/Select/DoesSelectQueryByEntryId.php"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="609"> - <caret line="70" column="29" 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 relative-caret-position="225"> + <caret line="15" column="6" selection-start-line="15" selection-start-column="6" selection-end-line="15" selection-end-column="6" /> </state> </provider> </entry> </file> - <file leaf-file-name="DeleteQueries.php" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/src/DeleteQueries.php"> + <file leaf-file-name="SelectQueriesTest.php" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/Tests/Unit/SelectQueriesTest.php"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="576"> - <caret line="60" selection-start-line="60" selection-end-line="60" /> + <state relative-caret-position="675"> + <caret line="48" selection-start-line="48" selection-end-line="48" /> </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"> + <file leaf-file-name="EntryTest.php" pinned="false" current-in-tab="true"> + <entry file="file://$PROJECT_DIR$/Tests/Unit/Select/EntryTest.php"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="120"> - <caret line="8" column="43" selection-start-line="8" selection-start-column="43" selection-end-line="8" selection-end-column="43" /> + <state relative-caret-position="173"> + <caret line="35" column="161" selection-start-line="35" selection-start-column="161" selection-end-line="35" selection-end-column="161" /> </state> </provider> </entry> </file> - <file leaf-file-name="ValueSelectQueryBuilder.php" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/src/Select/ValueSelectQueryBuilder.php"> + <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="450"> - <caret line="30" column="24" lean-forward="true" selection-end-line="47" /> + <state relative-caret-position="457"> + <caret line="158" column="64" selection-start-line="158" selection-start-column="64" selection-end-line="158" selection-end-column="64" /> </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"> + <file leaf-file-name="GenericBuilder.php" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/vendor/nilportugues/sql-query-builder/src/Builder/GenericBuilder.php"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="345"> - <caret line="23" selection-start-line="23" selection-end-line="23" /> + <state relative-caret-position="722"> + <caret line="72" column="37" selection-start-line="72" selection-start-column="37" selection-end-line="72" selection-end-column="37" /> </state> </provider> </entry> </file> - <file leaf-file-name="SelectQueries.php" pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/src/SelectQueries.php"> + </leaf> + </split-first> + <split-second> + <leaf> + <file leaf-file-name="SelectQueryBuilder.php" pinned="false" current-in-tab="true"> + <entry file="file://$PROJECT_DIR$/src/Select/SelectQueryBuilder.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 relative-caret-position="198"> + <caret line="51" column="14" selection-start-line="51" selection-start-column="14" selection-end-line="51" selection-end-column="14" /> </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"> + <file leaf-file-name="Select.php" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/vendor/nilportugues/sql-query-builder/src/Manipulation/Select.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 relative-caret-position="538"> + <caret line="390" column="25" selection-start-line="390" selection-start-column="15" selection-end-line="390" selection-end-column="25" /> </state> </provider> </entry> @@ -99,6 +97,9 @@ <component name="FindInProjectRecents"> <findStrings> <find>table</find> + <find>limitStart</find> + <find>SelectQueryBuilder</find> + <find>OFFSET</find> </findStrings> </component> <component name="Git.Settings"> @@ -111,10 +112,14 @@ <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/SelectQueryBuilder.php" /> <option value="$PROJECT_DIR$/src/Select/Entry.php" /> <option value="$PROJECT_DIR$/src/Select/ValueSelectQueryBuilder.php" /> <option value="$PROJECT_DIR$/src/Select/EntryValues.php" /> + <option value="$PROJECT_DIR$/src/Escape.php" /> + <option value="$PROJECT_DIR$/composer.json" /> + <option value="$PROJECT_DIR$/Tests/Unit/SelectQueriesTest.php" /> + <option value="$PROJECT_DIR$/src/Select/SelectQueryBuilder.php" /> + <option value="$PROJECT_DIR$/Tests/Unit/Select/EntryTest.php" /> </list> </option> </component> @@ -126,9 +131,6 @@ <detection-done>true</detection-done> <sorting>DEFINITION_ORDER</sorting> </component> - <component name="NodeModulesDirectoryManager"> - <handled-path value="$PROJECT_DIR$/node_modules" /> - </component> <component name="NodePackageJsonFileManager"> <packageJsonPaths> <path value="$PROJECT_DIR$/Tests/plugins/caldera-forms/includes/freemius/package.json" /> @@ -180,10 +182,9 @@ </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" /> + <option name="y" value="23" /> + <option name="width" value="1920" /> + <option name="height" value="1057" /> </component> <component name="ProjectLevelVcsManager"> <ConfirmationsSetting value="2" id="Add" /> @@ -209,18 +210,31 @@ <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" /> + <item name="Select" 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="Tests" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="caldera-forms-query" type="b2602c69:ProjectViewProjectNode" /> + <item name="caldera-forms-query" type="462c0819:PsiDirectoryNode" /> + <item name="Tests" type="462c0819:PsiDirectoryNode" /> + <item name="Unit" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="caldera-forms-query" type="b2602c69:ProjectViewProjectNode" /> + <item name="caldera-forms-query" type="462c0819:PsiDirectoryNode" /> + <item name="Tests" type="462c0819:PsiDirectoryNode" /> + <item name="Unit" 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="Tests" type="462c0819:PsiDirectoryNode" /> + <item name="Unit" type="462c0819:PsiDirectoryNode" /> <item name="Select" type="462c0819:PsiDirectoryNode" /> </path> </expand> @@ -232,6 +246,7 @@ </component> <component name="PropertiesComponent"> <property name="WebServerToolWindowFactoryState" value="false" /> + <property name="last_opened_file_path" value="$PROJECT_DIR$" /> <property name="nodejs_package_manager_path" value="npm" /> <property name="settings.editor.selected.configurable" value="fileTemplates" /> </component> @@ -258,36 +273,43 @@ <option name="presentableId" value="Default" /> <updated>1526182556614</updated> <workItem from="1526182558454" duration="3014000" /> + <workItem from="1526399297529" duration="2087000" /> + <workItem from="1526488802609" duration="517000" /> + <workItem from="1526489384730" duration="593000" /> + <workItem from="1526560816008" duration="579000" /> + <workItem from="1526598533921" duration="598000" /> + <workItem from="1526685882878" duration="434000" /> + <workItem from="1526730462374" duration="2145000" /> </task> <servers /> </component> <component name="TimeTrackingManager"> - <option name="totallyTimeSpent" value="3014000" /> + <option name="totallyTimeSpent" value="9967000" /> </component> <component name="ToolWindowManager"> - <frame x="260" y="43" width="1660" height="937" extended-state="0" /> + <frame x="0" y="23" width="1920" height="1057" 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="Event Log" order="7" side_tool="true" /> + <window_info anchor="bottom" id="Database Changes" order="7" show_stripe_button="false" /> <window_info anchor="bottom" id="Run" order="2" weight="0.3297619" /> - <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 anchor="bottom" id="Version Control" order="7" /> + <window_info active="true" anchor="bottom" id="Terminal" order="7" visible="true" weight="0.31770834" /> + <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.09105431" /> + <window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" /> + <window_info id="Grunt " order="2" side_tool="true" /> + <window_info anchor="right" id="Database" order="3" /> <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 id="Favorites" order="2" side_tool="true" /> <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" /> + <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" /> + <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" /> <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" /> + <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" /> + <window_info anchor="bottom" id="Find" order="1" /> </layout> </component> <component name="TypeScriptGeneratedFilesManager"> @@ -297,58 +319,132 @@ <option name="myLimit" value="2678400000" /> </component> <component name="editorHistoryManager"> - <entry file="file://$PROJECT_DIR$/src/QueryBuilder.php"> + <entry file="file://$PROJECT_DIR$/src/SelectQueries.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 relative-caret-position="675"> + <caret line="46" column="30" lean-forward="true" selection-start-line="46" selection-start-column="30" selection-end-line="46" selection-end-column="30" /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/src/Features/DoesQueries.php"> + <entry file="file://$PROJECT_DIR$/src/Select/DoesSelectQueryByEntryId.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 relative-caret-position="225"> + <caret line="15" column="6" selection-start-line="15" selection-start-column="6" selection-end-line="15" selection-end-column="6" /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/src/Features/Queries.php"> + <entry file="file://$PROJECT_DIR$/src/SelectQueries.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 relative-caret-position="510"> + <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/CreatesSelectQueries.php"> + <entry file="file://$PROJECT_DIR$/src/Select/DoesSelectQueryByEntryId.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 relative-caret-position="225"> + <caret line="15" column="6" selection-start-line="15" selection-start-column="6" selection-end-line="15" selection-end-column="6" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/src/SelectQueries.php"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="229"> + <state relative-caret-position="510"> <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/Select/DoesSelectQueryByEntryId.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="225"> + <caret line="15" column="6" selection-start-line="15" selection-start-column="6" selection-end-line="15" selection-end-column="6" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/SelectQueries.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="510"> + <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/Select/DoesSelectQueryByEntryId.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="225"> + <caret line="15" column="6" selection-start-line="15" selection-start-column="6" selection-end-line="15" selection-end-column="6" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/SelectQueries.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="510"> + <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/Select/DoesSelectQueryByEntryId.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="225"> + <caret line="15" column="6" selection-start-line="15" selection-start-column="6" selection-end-line="15" selection-end-column="6" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/SelectQueries.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="510"> + <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/Select/DoesSelectQueryByEntryId.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="225"> + <caret line="15" column="6" selection-start-line="15" selection-start-column="6" selection-end-line="15" selection-end-column="6" /> + </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"> + <state relative-caret-position="855"> <caret line="70" column="29" 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"> + <state relative-caret-position="885"> <caret line="60" selection-start-line="60" selection-end-line="60" /> </state> </provider> </entry> + <entry file="file://$PROJECT_DIR$/src/Select/ValueSelectQueryBuilder.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="450"> + <caret line="30" column="24" lean-forward="true" selection-end-line="47" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/Select/Entry.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="345"> + <caret line="23" selection-start-line="23" selection-end-line="23" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/SelectQueries.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="510"> + <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/Select/EntryValues.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="120"> + <caret line="8" column="43" selection-start-line="8" selection-start-column="43" selection-end-line="8" selection-end-column="43" /> + </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"> @@ -356,6 +452,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/Select/DoesSelectQuery.php"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="210"> @@ -370,31 +480,131 @@ </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/src/Select/SelectQueryBuilder.php"> + <entry file="file://$PROJECT_DIR$/src/Select/ValueSelectQueryBuilder.php"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="450"> - <caret line="31" column="5" lean-forward="true" selection-start-line="31" selection-start-column="5" selection-end-line="31" selection-end-column="5" /> + <caret line="30" column="24" selection-end-line="47" /> </state> </provider> </entry> + <entry file="file://$PROJECT_DIR$/src/Select/EntryValues.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="120"> + <caret line="8" column="43" selection-start-line="8" selection-start-column="43" selection-end-line="8" selection-end-column="43" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/DeleteQueries.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="599"> + <caret line="60" selection-start-line="60" selection-end-line="60" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/Features/FeatureContainer.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="446"> + <caret line="70" column="29" selection-start-line="70" selection-start-column="29" selection-end-line="70" selection-end-column="29" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/composer.json"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="259"> + <caret line="19" column="48" lean-forward="true" selection-start-line="19" selection-start-column="48" selection-end-line="19" selection-end-column="48" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/Tests/Unit/Features/QueriesTest.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="-102" /> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/Tests/Unit/Features/FeatureContainerTest.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="-941" /> + </provider> + </entry> <entry file="file://$PROJECT_DIR$/src/Select/Entry.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="135"> + <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/CreatesSelectQueries.php"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="345"> - <caret line="23" selection-start-line="23" selection-end-line="23" /> + <caret line="24" column="17" lean-forward="true" selection-start-line="24" selection-start-column="17" selection-end-line="24" selection-end-column="17" /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/src/Select/ValueSelectQueryBuilder.php"> + <entry file="file://$PROJECT_DIR$/src/MySqlBuilder.php"> + <provider selected="true" editor-type-id="text-editor" /> + </entry> + <entry file="file://$PROJECT_DIR$/src/Escape.php"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="450"> - <caret line="30" column="24" lean-forward="true" selection-end-line="47" /> + <state relative-caret-position="555"> + <caret line="37" selection-start-line="37" selection-end-line="37" /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/src/Select/EntryValues.php"> + <entry file="file://$PROJECT_DIR$/src/Select/DoesSelectQueryByEntryId.php"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="120"> - <caret line="8" column="43" selection-start-line="8" selection-start-column="43" selection-end-line="8" selection-end-column="43" /> + <state relative-caret-position="225"> + <caret line="15" column="6" selection-start-line="15" selection-start-column="6" selection-end-line="15" selection-end-column="6" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/.gitkeep"> + <provider selected="true" editor-type-id="text-editor" /> + </entry> + <entry file="file://$PROJECT_DIR$/src/SelectQueries.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="204"> + <caret line="30" column="7" lean-forward="true" selection-start-line="30" selection-start-column="7" selection-end-line="30" selection-end-column="7" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/QueryBuilder.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="457"> + <caret line="158" column="64" selection-start-line="158" selection-start-column="64" selection-end-line="158" selection-end-column="64" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/vendor/nilportugues/sql-query-builder/src/Builder/GenericBuilder.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="722"> + <caret line="72" column="37" selection-start-line="72" selection-start-column="37" selection-end-line="72" selection-end-column="37" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/vendor/nilportugues/sql-query-builder/src/Manipulation/Select.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="538"> + <caret line="390" column="25" selection-start-line="390" selection-start-column="15" selection-end-line="390" selection-end-column="25" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/Tests/Unit/SelectQueriesTest.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="675"> + <caret line="48" selection-start-line="48" selection-end-line="48" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/Select/SelectQueryBuilder.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="198"> + <caret line="51" column="14" selection-start-line="51" selection-start-column="14" selection-end-line="51" selection-end-column="14" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/Tests/Unit/Select/EntryTest.php"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="173"> + <caret line="35" column="161" selection-start-line="35" selection-start-column="161" selection-end-line="35" selection-end-column="161" /> </state> </provider> </entry> diff --git a/Tests/Unit/Select/EntryTest.php b/Tests/Unit/Select/EntryTest.php index 22015f713cdb6634260d4769711aea32b2f011c7..f8192fa74d35d07f2dbdd7380e65bfd77ac3bcbd 100644 --- a/Tests/Unit/Select/EntryTest.php +++ b/Tests/Unit/Select/EntryTest.php @@ -25,6 +25,23 @@ class EntryTest extends TestCase $this->assertEquals($expectedSql, $actualSql); } + /** + * Test query by form ID + * + * @covers Entry::queryByFormsId() + * @covers \calderawp\CalderaFormsQuery\addPagination::() + */ + public function testQueryByFormsIdPaginated() + { + $expectedSql = "SELECT `{$this->entryTableName()}`.* FROM `wp_cf_form_entries` WHERE (`{$this->entryTableName()}`.`form_id` = 'cf12345') LIMIT '26', '50'"; + $actualSql = $this + ->entryGeneratorFactory() + ->queryByFormsId('cf12345') + ->addPagination(2,25 ) + ->getPreparedSql(); + $this->assertEquals($expectedSql, $actualSql); + } + /** * Test query by entry ID * @@ -57,6 +74,9 @@ class EntryTest extends TestCase $this->assertEquals($expectedSql, $actualSql); } + + + /** * @param $generator * @return bool diff --git a/Tests/Unit/SelectQueriesTest.php b/Tests/Unit/SelectQueriesTest.php index 0ef695d25be3f6bddcfda4fa908eb60d088850f8..e5cb4c7c342be8e06b931f12441a021f0b2de6bd 100644 --- a/Tests/Unit/SelectQueriesTest.php +++ b/Tests/Unit/SelectQueriesTest.php @@ -45,4 +45,6 @@ class SelectQueriesTest extends TestCase $queries = $this->selectQueriesFactory(); $this->assertTrue(is_array($queries->getResults("SELECT `roy` FROM sivan WHERE mike = 'roy'"))); } + + } diff --git a/composer.lock b/composer.lock index b411b10c50965b16edf6654abf2b13e4c0e574e3..8f9f3a565c201f852e37f50e1a2e6e06495a1d0a 100644 --- a/composer.lock +++ b/composer.lock @@ -1,10 +1,10 @@ { "_readme": [ "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "736a984915e9e1f970336e5a8e5b38eb", + "content-hash": "66049b1b98fbc3be0172f1d471393cb3", "packages": [ { "name": "calderawp/caldera-containers", @@ -273,7 +273,7 @@ "version": "dev-feature/2404", "source": { "type": "git", - "url": "git@github.com:CalderaWP/Caldera-Forms.git", + "url": "https://github.com/CalderaWP/Caldera-Forms", "reference": "c4c2d1db6042c82f2229c89ed7140c8b214c9c8e" }, "type": "wordpress-plugin", @@ -819,23 +819,23 @@ }, { "name": "phpspec/prophecy", - "version": "1.7.5", + "version": "1.7.6", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "dfd6be44111a7c41c2e884a336cc4f461b3b2401" + "reference": "33a7e3c4fda54e912ff6338c48823bd5c0f0b712" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/dfd6be44111a7c41c2e884a336cc4f461b3b2401", - "reference": "dfd6be44111a7c41c2e884a336cc4f461b3b2401", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/33a7e3c4fda54e912ff6338c48823bd5c0f0b712", + "reference": "33a7e3c4fda54e912ff6338c48823bd5c0f0b712", "shasum": "" }, "require": { "doctrine/instantiator": "^1.0.2", "php": "^5.3|^7.0", "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", - "sebastian/comparator": "^1.1|^2.0", + "sebastian/comparator": "^1.1|^2.0|^3.0", "sebastian/recursion-context": "^1.0|^2.0|^3.0" }, "require-dev": { @@ -878,20 +878,20 @@ "spy", "stub" ], - "time": "2018-02-19T10:16:54+00:00" + "time": "2018-04-18T13:57:24+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "6.0.1", + "version": "6.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "f8ca4b604baf23dab89d87773c28cc07405189ba" + "reference": "52187754b0eed0b8159f62a6fa30073327e8c2ca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f8ca4b604baf23dab89d87773c28cc07405189ba", - "reference": "f8ca4b604baf23dab89d87773c28cc07405189ba", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/52187754b0eed0b8159f62a6fa30073327e8c2ca", + "reference": "52187754b0eed0b8159f62a6fa30073327e8c2ca", "shasum": "" }, "require": { @@ -902,7 +902,7 @@ "phpunit/php-text-template": "^1.2.1", "phpunit/php-token-stream": "^3.0", "sebastian/code-unit-reverse-lookup": "^1.0.1", - "sebastian/environment": "^3.0", + "sebastian/environment": "^3.1", "sebastian/version": "^2.0.1", "theseer/tokenizer": "^1.1" }, @@ -941,7 +941,7 @@ "testing", "xunit" ], - "time": "2018-02-02T07:01:41+00:00" + "time": "2018-04-29T14:59:09+00:00" }, { "name": "phpunit/php-file-iterator", @@ -1131,16 +1131,16 @@ }, { "name": "phpunit/phpunit", - "version": "7.0.3", + "version": "7.1.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "536f4d853c12d8189963435088e8ff7c0daeab2e" + "reference": "ca64dba53b88aba6af32aebc6b388068db95c435" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/536f4d853c12d8189963435088e8ff7c0daeab2e", - "reference": "536f4d853c12d8189963435088e8ff7c0daeab2e", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/ca64dba53b88aba6af32aebc6b388068db95c435", + "reference": "ca64dba53b88aba6af32aebc6b388068db95c435", "shasum": "" }, "require": { @@ -1158,8 +1158,8 @@ "phpunit/php-file-iterator": "^1.4.3", "phpunit/php-text-template": "^1.2.1", "phpunit/php-timer": "^2.0", - "phpunit/phpunit-mock-objects": "^6.0", - "sebastian/comparator": "^2.1", + "phpunit/phpunit-mock-objects": "^6.1.1", + "sebastian/comparator": "^3.0", "sebastian/diff": "^3.0", "sebastian/environment": "^3.1", "sebastian/exporter": "^3.1", @@ -1181,7 +1181,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "7.0-dev" + "dev-master": "7.1-dev" } }, "autoload": { @@ -1207,20 +1207,20 @@ "testing", "xunit" ], - "time": "2018-03-26T07:36:48+00:00" + "time": "2018-04-29T15:09:19+00:00" }, { "name": "phpunit/phpunit-mock-objects", - "version": "6.0.1", + "version": "6.1.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", - "reference": "e3249dedc2d99259ccae6affbc2684eac37c2e53" + "reference": "70c740bde8fd9ea9ea295be1cd875dd7b267e157" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/e3249dedc2d99259ccae6affbc2684eac37c2e53", - "reference": "e3249dedc2d99259ccae6affbc2684eac37c2e53", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/70c740bde8fd9ea9ea295be1cd875dd7b267e157", + "reference": "70c740bde8fd9ea9ea295be1cd875dd7b267e157", "shasum": "" }, "require": { @@ -1238,7 +1238,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "6.0.x-dev" + "dev-master": "6.1-dev" } }, "autoload": { @@ -1263,7 +1263,7 @@ "mock", "xunit" ], - "time": "2018-02-15T05:27:38+00:00" + "time": "2018-04-11T04:50:36+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", @@ -1312,30 +1312,30 @@ }, { "name": "sebastian/comparator", - "version": "2.1.3", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9" + "reference": "ed5fd2281113729f1ebcc64d101ad66028aeb3d5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/34369daee48eafb2651bea869b4b15d75ccc35f9", - "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/ed5fd2281113729f1ebcc64d101ad66028aeb3d5", + "reference": "ed5fd2281113729f1ebcc64d101ad66028aeb3d5", "shasum": "" }, "require": { - "php": "^7.0", - "sebastian/diff": "^2.0 || ^3.0", + "php": "^7.1", + "sebastian/diff": "^3.0", "sebastian/exporter": "^3.1" }, "require-dev": { - "phpunit/phpunit": "^6.4" + "phpunit/phpunit": "^7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1.x-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -1372,7 +1372,7 @@ "compare", "equality" ], - "time": "2018-02-01T13:46:46+00:00" + "time": "2018-04-18T13:33:00+00:00" }, { "name": "sebastian/diff", diff --git a/src/Select/SelectQueryBuilder.php b/src/Select/SelectQueryBuilder.php index c774823c99647e82c132873f003adb565ddc10e1..dcec06cd235b8a9a6422486bbf3ad9163f7ffda1 100644 --- a/src/Select/SelectQueryBuilder.php +++ b/src/Select/SelectQueryBuilder.php @@ -43,6 +43,22 @@ abstract class SelectQueryBuilder extends QueryBuilder implements DoesSelectQuer return $this; } + /** + * Add pagination to a query + * + * @param int $page What page of query + * @param int $limit How many per page + * + * @return $this + */ + public function addPagination( $page, $limit = 25 ) + { + $start = 1 + ( $page * $limit) - $limit; + $last = $page * $limit; + $this->getCurrentQuery()->limit((int)$start, (int)$last ); + return $this; + } + /** * @return Select */