]> git.agnieray.net Git - galette.git/commitdiff
Use a trait for dependencies
authorJohan Cwiklinski <johan@x-tnd.be>
Mon, 25 Sep 2023 15:44:30 +0000 (17:44 +0200)
committerJohan Cwiklinski <johan@x-tnd.be>
Mon, 25 Sep 2023 15:48:00 +0000 (17:48 +0200)
galette/lib/Galette/Entity/Adherent.php
galette/lib/Galette/Features/Dependencies.php [new file with mode: 0644]
galette/lib/Galette/Features/Dynamics.php

index df58d26503dab1989e1af9d8a9bd741039153d41..d5701750781edad6edc370efec6f7c5b175c51f6 100644 (file)
@@ -191,7 +191,7 @@ class Adherent
     private $_row_classes;
 
     private $_self_adh = false;
-    private $_deps = array(
+    protected array $_deps = array(
         'picture'   => true,
         'groups'    => true,
         'dues'      => true,
@@ -2285,84 +2285,4 @@ class Adherent
         $this->loadParent();
         return $this;
     }
-
-    /**
-     * Reset dependencies to load
-     *
-     * @return $this
-     */
-    public function disableAllDeps(): self
-    {
-        foreach ($this->_deps as &$dep) {
-            $dep = false;
-        }
-        return $this;
-    }
-
-    /**
-     * Enable all dependencies to load
-     *
-     * @return $this
-     */
-    public function enableAllDeps(): self
-    {
-        foreach ($this->_deps as &$dep) {
-            $dep = true;
-        }
-        return $this;
-    }
-
-    /**
-     * Enable a load dependency
-     *
-     * @param string $name Dependency name
-     *
-     * @return $this
-     */
-    public function enableDep(string $name): self
-    {
-        if (!isset($this->_deps[$name])) {
-            Analog::log(
-                'dependency ' . $name . ' does not exists!',
-                Analog::WARNING
-            );
-        } else {
-            $this->_deps[$name] = true;
-        }
-
-        return $this;
-    }
-
-    /**
-     * Enable a load dependency
-     *
-     * @param string $name Dependency name
-     *
-     * @return $this
-     */
-    public function disableDep(string $name): self
-    {
-        if (!isset($this->_deps[$name])) {
-            Analog::log(
-                'dependency ' . $name . ' does not exists!',
-                Analog::WARNING
-            );
-        } else {
-            $this->_deps[$name] = false;
-        }
-
-        return $this;
-    }
-
-    /**
-     * Is load dependency enabled?
-     *
-     * @param string $name Dependency name
-     *
-     * @return boolean
-     */
-    protected function isDepEnabled(string $name): bool
-    {
-        return $this->_deps[$name];
-    }
 }
diff --git a/galette/lib/Galette/Features/Dependencies.php b/galette/lib/Galette/Features/Dependencies.php
new file mode 100644 (file)
index 0000000..b24a96e
--- /dev/null
@@ -0,0 +1,159 @@
+<?php
+
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Dependencies feature
+ *
+ * PHP version 5
+ *
+ * Copyright © 2023 The Galette Team
+ *
+ * This file is part of Galette (https://galette.eu).
+ *
+ * Galette is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Galette is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Galette. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * @category  Features
+ * @package   Galette
+ *
+ * @author    Johan Cwiklinski <johan@x-tnd.be>
+ * @copyright 2023 The Galette Team
+ * @license   http://www.gnu.org/licenses/gpl-3.0.html GPL License 3.0 or (at your option) any later version
+ * @link      https://galette.eu
+ * @since     2023-09-25
+ */
+
+namespace Galette\Features;
+
+use Galette\Core\Db;
+use Galette\Core\Login;
+use Galette\Core\Logo;
+use Galette\Core\Preferences;
+use Galette\DynamicFields\Choice;
+use Galette\DynamicFields\Separator;
+use Galette\Entity\Adherent;
+use Galette\Entity\Contribution;
+use Galette\Entity\PdfModel;
+use Galette\Entity\Texts;
+use Galette\Repository\DynamicFieldsSet;
+use Galette\DynamicFields\DynamicField;
+use Analog\Analog;
+use NumberFormatter;
+use Slim\Router;
+
+/**
+ * Dependencies feature
+ *
+ * @category  Features
+ * @name      Dependencies
+ * @package   Galette
+ * @author    Johan Cwiklinski <johan@x-tnd.be>
+ * @copyright 2023 The Galette Team
+ * @license   http://www.gnu.org/licenses/gpl-3.0.html GPL License 3.0 or (at your option) any later version
+ * @link      https://galette.eu
+ * @since     2023-09-25
+ */
+
+trait Dependencies
+{
+    protected array $_deps = array(
+        'picture'   => true,
+        'groups'    => true,
+        'dues'      => true,
+        'parent'    => false,
+        'children'  => false,
+        'dynamics'  => false,
+        'socials'   => false
+    );
+
+    /**
+     * Reset dependencies to load
+     *
+     * @return $this
+     */
+    public function disableAllDeps(): self
+    {
+        foreach ($this->_deps as &$dep) {
+            $dep = false;
+        }
+        return $this;
+    }
+
+    /**
+     * Enable all dependencies to load
+     *
+     * @return $this
+     */
+    public function enableAllDeps(): self
+    {
+        foreach ($this->_deps as &$dep) {
+            $dep = true;
+        }
+        return $this;
+    }
+
+    /**
+     * Enable a load dependency
+     *
+     * @param string $name Dependency name
+     *
+     * @return $this
+     */
+    public function enableDep(string $name): self
+    {
+        if (!isset($this->_deps[$name])) {
+            Analog::log(
+                'dependency ' . $name . ' does not exists!',
+                Analog::WARNING
+            );
+        } else {
+            $this->_deps[$name] = true;
+        }
+
+        return $this;
+    }
+
+    /**
+     * Enable a load dependency
+     *
+     * @param string $name Dependency name
+     *
+     * @return $this
+     */
+    public function disableDep(string $name): self
+    {
+        if (!isset($this->_deps[$name])) {
+            Analog::log(
+                'dependency ' . $name . ' does not exists!',
+                Analog::WARNING
+            );
+        } else {
+            $this->_deps[$name] = false;
+        }
+
+        return $this;
+    }
+
+    /**
+     * Is load dependency enabled?
+     *
+     * @param string $name Dependency name
+     *
+     * @return boolean
+     */
+    protected function isDepEnabled(string $name): bool
+    {
+        return $this->_deps[$name];
+    }
+}
index d4427978956c6cdf0a5ebb377d3fbb4993337fa1..aecbc4be3fc83df775fe95f356a2997d1affce41 100644 (file)
@@ -58,6 +58,8 @@ use Galette\Entity\DynamicFieldsHandle;
 
 trait Dynamics
 {
+    use Dependencies;
+
     /** @var string */
     protected $name_pattern = 'info_field_';