SF.net SVN: phpwiki:[11053] trunk/lib/WikiDB

vargenau--- via phpwiki-checkins <[email protected]> Fri, 14 Jul 2023 11:09:38 +0000
Newsgroups gmane.comp.web.wiki.phpwiki.checkins
Message-ID <[email protected]>
Revision: 11053
          http://sourceforge.net/p/phpwiki/code/11053
Author:   vargenau
Date:     2023-07-14 11:09:38 +0000 (Fri, 14 Jul 2023)
Log Message:
-----------
lib/WikiDB: PHP 7: add types for function arguments and return

Modified Paths:
--------------
    trunk/lib/WikiDB/PDO.php
    trunk/lib/WikiDB/SQL.php
    trunk/lib/WikiDB/backend.php

Modified: trunk/lib/WikiDB/PDO.php
===================================================================
--- trunk/lib/WikiDB/PDO.php	2023-07-14 11:00:34 UTC (rev 11052)
+++ trunk/lib/WikiDB/PDO.php	2023-07-14 11:09:38 UTC (rev 11053)
@@ -101,7 +101,7 @@
         return str_replace("'", "\'", $in);
     }
 
-    public function isOpen()
+    public function isOpen(): bool
     {
         /**
          * @var WikiRequest $request

Modified: trunk/lib/WikiDB/SQL.php
===================================================================
--- trunk/lib/WikiDB/SQL.php	2023-07-14 11:00:34 UTC (rev 11052)
+++ trunk/lib/WikiDB/SQL.php	2023-07-14 11:09:38 UTC (rev 11053)
@@ -54,7 +54,7 @@
         parent::__construct($backend, $dbparams);
     }
 
-    public static function view_dsn($dsn = false)
+    public static function view_dsn($dsn = false): string
     {
         if (!$dsn) {
             $dsninfo = DB::parseDSN($GLOBALS['DBParams']['dsn']);
@@ -97,7 +97,7 @@
         return $this->_backend->_dbh->escapeSimple($s);
     }
 
-    public function isOpen()
+    public function isOpen(): bool
     {
         /**
          * @var WikiRequest $request

Modified: trunk/lib/WikiDB/backend.php
===================================================================
--- trunk/lib/WikiDB/backend.php	2023-07-14 11:00:34 UTC (rev 11052)
+++ trunk/lib/WikiDB/backend.php	2023-07-14 11:09:38 UTC (rev 11053)
@@ -91,7 +91,7 @@
      *                    don't think we need this...)
      * </dl>
      */
-    abstract public function get_pagedata($pagename);
+    abstract public function get_pagedata(string $pagename): array;
 
     /**
      * Update the page meta-data.
@@ -116,7 +116,7 @@
      * @param string $pagename Page name.
      * @param array $newdata hash New meta-data.
      */
-    abstract public function update_pagedata($pagename, $newdata);
+    abstract public function update_pagedata(string $pagename, array $newdata);
 
     /**
      * Get the current version number for a page.
@@ -125,7 +125,7 @@
      * @return int The latest version number for the page.  Returns zero if
      *  no versions of a page exist.
      */
-    abstract public function get_latest_version($pagename);
+    abstract public function get_latest_version(string $pagename): int;
 
     /**
      * Get preceding version number.
@@ -135,7 +135,7 @@
      * @return int The version number of the version in the database which
      *  immediately precedes $version.
      */
-    abstract public function get_previous_version($pagename, $version);
+    abstract public function get_previous_version(string $pagename, int $version): int;
 
     /**
      * Get revision meta-data and content.
@@ -161,7 +161,7 @@
      * For description of other version meta-data see WikiDB_PageRevision::get().
      * @see WikiDB_PageRevision::get
      */
-    abstract public function get_versiondata($pagename, $version, $want_content = false);
+    abstract public function get_versiondata(string $pagename, int $version, bool $want_content = false);
 
     /**
      * Create a new page revision.
@@ -175,7 +175,7 @@
      *
      * @see get_versiondata
      */
-    abstract public function set_versiondata($pagename, $version, $data);
+    abstract public function set_versiondata(string $pagename, int $version, array $data);
 
     /**
      * Update page version meta-data.
@@ -189,7 +189,7 @@
      * @param array $newdata hash New revision metadata.
      * @see set_versiondata, get_versiondata
      */
-    public function update_versiondata($pagename, $version, $newdata)
+    public function update_versiondata(string $pagename, int $version, array $newdata)
     {
         $data = $this->get_versiondata($pagename, $version, true);
         if (!$data) {
@@ -218,7 +218,7 @@
      * @param string $pagename Page name.
      * @param int $version int Version to delete.
      */
-    abstract public function delete_versiondata($pagename, $version);
+    abstract public function delete_versiondata(string $pagename, int $version);
 
     /**
      * Rename page in the database.
@@ -226,7 +226,7 @@
      * @param string $pagename Current page name
      * @param string $to       Future page name
      */
-    abstract public function rename_page($pagename, $to);
+    abstract public function rename_page(string $pagename, string $to);
 
     /**
      * Delete page from the database with backup possibility.
@@ -237,7 +237,7 @@
      * i.e save_page('') and DELETE nonempty id
      * Can be undone and is seen in RecentChanges.
      */
-    abstract public function delete_page($pagename);
+    abstract public function delete_page(string $pagename);
 
     /**
      * Delete page (and all its revisions) from the database.
@@ -244,7 +244,7 @@
      *
      * @param string $pagename Page name.
      */
-    abstract public function purge_page($pagename);
+    abstract public function purge_page(string $pagename);
 
     /**
      * Find pages which link to or are linked from a page.
@@ -261,13 +261,13 @@
      * @return object A WikiDB_backend_iterator.
      */
     abstract public function get_links(
-        $pagename,
-        $reversed = true,
-        $include_empty = false,
-        $sortby = '',
-        $limit = '',
-        $exclude = '',
-        $want_relations = false
+        string $pagename,
+        bool   $reversed = true,
+        bool   $include_empty = false,
+        string $sortby = '',
+        string $limit = '',
+        string $exclude = '',
+        bool $want_relations = false
     );
 
     /**
@@ -276,7 +276,7 @@
      * @param string $pagename Page name
      * @param array  $links    List of page(names) which page links to.
      */
-    abstract public function set_links($pagename, $links);
+    abstract public function set_links(string $pagename, array $links);
 
     /**
      * Get all revisions of a page.
@@ -284,7 +284,7 @@
      * @param string $pagename The page name.
      * @return object A WikiDB_backend_iterator.
      */
-    public function get_all_revisions($pagename)
+    public function get_all_revisions(string $pagename)
     {
         include_once 'lib/WikiDB/backend/dumb/AllRevisionsIter.php';
         return new WikiDB_backend_dumb_AllRevisionsIter($this, $pagename);
@@ -311,10 +311,10 @@
      * @return object A WikiDB_backend_iterator.
      */
     abstract public function get_all_pages(
-        $include_empty = false,
-        $sortby = '',
-        $limit = '',
-        $exclude = ''
+        bool   $include_empty = false,
+        string $sortby = '',
+        string $limit = '',
+        string $exclude = ''
     );
 
     /**
@@ -338,11 +338,11 @@
      * @see WikiDB::titleSearch
      */
     public function text_search(
-        $search,
-        $fulltext = false,
-        $sortby = '',
-        $limit = '',
-        $exclude = ''
+        object $search,
+        bool   $fulltext = false,
+        string $sortby = '',
+        string $limit = '',
+        string $exclude = ''
     )
     {
         // This method implements a simple linear search
@@ -374,7 +374,7 @@
      * @return object A WikiDB_backend_iterator.
      * @see WikiDB::linkSearch
      */
-    public function link_search($pages, $linkvalue, $linktype, $relation = false, $options = array())
+    public function link_search($pages, $linkvalue, string $linktype, $relation = false, array $options = array())
     {
         include_once 'lib/WikiDB/backend/dumb/LinkSearchIter.php';
         $pageiter = $this->text_search($pages);
@@ -391,7 +391,7 @@
      * @param  string $sortby
      * @return object  A WikiDB_backend_iterator.
      */
-    public function most_popular($limit = 20, $sortby = '-hits')
+    public function most_popular(int $limit = 20, string $sortby = '-hits')
     {
         // This is method fetches all pages, then
         // sorts them by hit count.
@@ -412,7 +412,7 @@
      * @return object A WikiDB_backend_iterator.
      * @see WikiDB::mostRecent
      */
-    public function most_recent($params)
+    public function most_recent(array $params)
     {
         // This method is very inefficient and searches through
         // all pages for the most recent changes.
@@ -444,7 +444,7 @@
      *
      *     All backends <em>should</em> support write locking.
      */
-    abstract public function lock($tables = array(), $write_lock = true);
+    abstract public function lock(array $tables = array(), bool $write_lock = true);
 
     /**
      * Unlock backend database.
@@ -454,7 +454,7 @@
      *  unlock() is called as many times as lock() has been.  If $force is
      *  set to true, the the database is unconditionally unlocked.
      */
-    abstract public function unlock($tables = array(), $force = false);
+    abstract public function unlock(array $tables = array(), bool $force = false);
 
     /**
      * Close database.
@@ -475,7 +475,7 @@
      *
      * @return bool
      */
-    public function optimize()
+    public function optimize(): bool
     {
         return true;
     }
@@ -492,7 +492,7 @@
      * @param bool $args
      * @return bool True iff database is in a consistent state.
      */
-    public function check($args = false)
+    public function check(bool $args = false): bool
     {
         return true;
     }
@@ -507,7 +507,7 @@
      * @param bool $args
      * @return bool True iff successful.
      */
-    public function rebuild($args = false)
+    public function rebuild(bool $args = false): bool
     {
         /**
          * @var WikiRequest $request
@@ -534,7 +534,7 @@
         return true;
     }
 
-    public function _parse_searchwords($search)
+    public function _parse_searchwords($search): array
     {
         $search = strtolower(trim($search));
         if (!$search) {
@@ -559,7 +559,7 @@
      * Usage:
      *   list($offset,$count) = $this->limit($args['limit']);
      */
-    public static function limit($limit)
+    public static function limit($limit): array
     {
         if (strstr($limit, ',')) {
             list($from, $limit) = explode(',', $limit);
@@ -654,13 +654,13 @@
         return '';
     }
 
-    public function sortable_columns()
+    public function sortable_columns(): array
     {
         return array('pagename' /*,'mtime','author_id','author'*/);
     }
 
     // adds surrounding quotes
-    public function quote($s)
+    public function quote($s): string
     {
         return "'" . $s . "'";
     }
@@ -671,7 +671,7 @@
         return $s;
     }
 
-    public function isSQL()
+    public function isSQL(): bool
     {
         return in_array(DATABASE_TYPE, array('SQL', 'PDO'));
     }
@@ -746,7 +746,7 @@
      */
     abstract public function next();
 
-    public function count()
+    public function count(): int
     {
         if (!empty($this->_pages)) {
             return count($this->_pages);
@@ -800,28 +800,28 @@
         $this->stoplisted = array();
     }
 
-    public function _quote($word)
+    public function _quote($word): string
     {
         return preg_quote($word, "/");
     }
 
     //TODO: use word anchors
-    public function EXACT($word)
+    public function EXACT($word): string
     {
         return "^" . $this->_quote($word) . "$";
     }
 
-    public function STARTS_WITH($word)
+    public function STARTS_WITH($word): string
     {
         return "^" . $this->_quote($word);
     }
 
-    public function ENDS_WITH($word)
+    public function ENDS_WITH($word): string
     {
         return $this->_quote($word) . "$";
     }
 
-    public function WORD($word)
+    public function WORD($word): string
     {
         return $this->_quote($word);
     }
@@ -832,7 +832,7 @@
     }
 
     //TESTME
-    public function _pagename_match_clause($node)
+    public function _pagename_match_clause($node): string
     {
         $method = $node->op;
         $word = $this->$method($node->word);
@@ -842,7 +842,7 @@
     /* Eliminate stoplist words.
      *  Keep a list of Stoplisted words to inform the poor user.
      */
-    public function isStoplisted($node)
+    public function isStoplisted($node): bool
     {
         // check only on WORD or EXACT fulltext search
         if ($node->op != 'WORD' and $node->op != 'EXACT') {
@@ -861,7 +861,7 @@
  */
 class WikiDB_backend_search_sql extends WikiDB_backend_search
 {
-    public function _pagename_match_clause($node)
+    public function _pagename_match_clause($node): string
     {
         // word already quoted by TextSearchQuery_node_word::sql_quote()
         $word = $node->sql();
@@ -874,7 +874,7 @@
         }
     }
 
-    public function _fulltext_match_clause($node)
+    public function _fulltext_match_clause($node): string
     {
         // force word-style %word% for fulltext search
         $dbh = &$this->_dbh;

This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.