Overview

Namespaces

  • Charcoal
    • Object
    • User
      • Acl

Classes

  • Charcoal\Object\Content
  • Charcoal\Object\ObjectRevision
  • Charcoal\Object\ObjectRoute
  • Charcoal\Object\ObjectSchedule
  • Charcoal\Object\UserData
  • Charcoal\User\AbstractUser
  • Charcoal\User\Acl\Manager
  • Charcoal\User\Acl\Permission
  • Charcoal\User\Acl\PermissionCategory
  • Charcoal\User\Acl\Role
  • Charcoal\User\Authenticator
  • Charcoal\User\Authorizer
  • Charcoal\User\AuthToken
  • Charcoal\User\AuthTokenMetadata
  • Charcoal\User\GenericUser

Interfaces

  • Charcoal\Object\ArchivableInterface
  • Charcoal\Object\CategorizableInterface
  • Charcoal\Object\CategorizableMultipleInterface
  • Charcoal\Object\CategoryInterface
  • Charcoal\Object\ContentInterface
  • Charcoal\Object\HierarchicalInterface
  • Charcoal\Object\ObjectRevisionInterface
  • Charcoal\Object\ObjectRouteInterface
  • Charcoal\Object\ObjectScheduleInterface
  • Charcoal\Object\PublishableInterface
  • Charcoal\Object\RevisionableInterface
  • Charcoal\Object\RoutableInterface
  • Charcoal\Object\UserDataInterface
  • Charcoal\User\UserInterface

Traits

  • Charcoal\Object\ArchivableTrait
  • Charcoal\Object\CategorizableMultipleTrait
  • Charcoal\Object\CategorizableTrait
  • Charcoal\Object\CategoryTrait
  • Charcoal\Object\HierarchicalTrait
  • Charcoal\Object\PublishableTrait
  • Charcoal\Object\RevisionableTrait
  • Charcoal\Object\RoutableTrait
  • Overview
  • Namespace
  • Class
 1: <?php
 2: 
 3: namespace Charcoal\Object;
 4: 
 5: use \InvalidArgumentException;
 6: 
 7: /**
 8:  * Defines objects that can be associated to one or more categories.
 9:  *
10:  * Basic implementation of {@see \Charcoal\Object\CategorizableMultipleInterface}.
11:  *
12:  * @see \Charcoal\Object\CategoryInterface Accepted interface.
13:  */
14: trait CategorizableMultipleTrait
15: {
16:     /**
17:      * The type of category the object can belong to.
18:      *
19:      * @var string
20:      */
21:     private $categoryType;
22: 
23:     /**
24:      * One or more categories the object belongs to.
25:      *
26:      * @var (mixed|CategoryInterface)[]|Traversable
27:      */
28:     protected $categories;
29: 
30:     /**
31:      * Set the type of category the object can belong to.
32:      *
33:      * @param string $type The category type.
34:      * @throws InvalidArgumentException If the type argument is not a string.
35:      * @return CategorizableMultipleInterface Chainable
36:      */
37:     public function setCategoryType($type)
38:     {
39:         if (!is_string($type)) {
40:             throw new InvalidArgumentException(
41:                 'Category type must be a string.'
42:             );
43:         }
44: 
45:         $this->categoryType = $type;
46: 
47:         return $this;
48:     }
49: 
50:     /**
51:      * Retrieve the type of category the object can belong to.
52:      *
53:      * @return string
54:      */
55:     public function categoryType()
56:     {
57:         return $this->categoryType;
58:     }
59: 
60:     /**
61:      * Set the categories the object belongs to.
62:      *
63:      * @param array|Traversable $categories The object's categories.
64:      * @return CategorizableMultipleInterface Chainable
65:      */
66:     public function setCategories($categories)
67:     {
68:         $this->categories = $categories;
69: 
70:         return $this;
71:     }
72: 
73:     /**
74:      * Retrieve the categories the object belongs to.
75:      *
76:      * @return array|Traversable
77:      */
78:     public function categories()
79:     {
80:         return $this->categories;
81:     }
82: }
83: 
API documentation generated by ApiGen