PHP Classes

File: docs/AssignClauseMgr.md

Recommend this page to a friend!
  Classes of Kjell-Inge Gustafsson   PcGen   docs/AssignClauseMgr.md   Download  
File: docs/AssignClauseMgr.md
Role: Auxiliary data
Content type: text/markdown
Description: Auxiliary data
Class: PcGen
Generate PHP code from parameters
Author: By
Last change: 1.1.47
Date: 3 years ago
Size: 8,830 bytes
 

Contents

Class file image Download

[comment]: # (This file is part of PcGen, PHP Code Generation support package. Copyright 2020 Kjell-Inge Gustafsson, kigkonsult, All rights reserved, licence GPL 3.0)

AssignClauseMgr

The `AssignClauseMgr` manages the code assign of a target class property or variable (value)

* from source class property or variable (value), opt (int/variable) index (scalar) fixedSourceValue ternary or null coalesce expression single function/method or chained invokes other PHP expression

* default assign operator is `=` * ex result `$this->property = OtherClass::CONSTANT;`

The result of this class toString()/toArray() methods is used by other classes setBody() method.

AssignClauseMgr Methods

Inherited [Common methods]


* ```targetClass``` _string_ one of null, self, $this, 'otherClass', '$class'
   convenient constants found in PcGenInterface 
* ```targetVariable``` _string_ variable/property name
   uppercase is autodetected as CONSTANT
   variable $-prefixed
* ```targetIndex```  _int_|_string_ opt array index
* ```sourceClass``` _string_ one of null, self,  $this, 'otherClass', '$class'
   convenient constants found in PcGenInterface 
* ```sourceVariable``` _string_ class/variable/property name
   uppercase is autodetected as CONSTANT
   variable $-prefixed
* ```sourceIndex```  _int_|_string_ opt array index
* For eol and indents, defaults are used
* Return _static_

---

  • Return _array_, result code rows (null-bytes removed) no trailing eol
  • Throws _RuntimeException_

* Return _string_ with code rows (extends toArray), each code row with trailing eol
* Throws _RuntimeException_

---

  • Return [EntityMgr]

* Return _bool_ true if set, false not

  • convenient constants found in PcGenInterface 
    
    
  • uppercase is autodetected as CONSTANT variable $-prefixed
  • 
    
  • Return _static_
  • Throws _InvalidArgumentException_

* convenient shortcut for ```AssignClauseMgr::setTarget()```
* Give target result ```$this->property```
* ```property``` _string_
* ```index```  _int_|_string_ opt array index
* Return _static_
* Throws _InvalidArgumentException_


  • convenient shortcut for ```AssignClauseMgr::setTarget()```
  • Give target result ```$variable```
  • 
    
  • Return _static_
  • Throws _InvalidArgumentException_

* Only applicable for '$targetClass', ignored by the others
* ```forceTargetAsInstance``` _bool_
   true : force ```$targetClass->property```
   false : NOT, default (```$targetClass::$property```)
* Return _static_

---

  • Return _bool_|_int_|_float_|_string_, scalar

* Return _bool_ true if set, false not


  • Set a fixed (scalar) source
  • 
    
  • Return _static_
  • Throws InvalidException


* Set a PHP expression
* ```expression``` _string_  any PHP expression
* Return _static_
* Throws InvalidException

---

  • Return [EntityMgr]

* Return _bool_ true if set, false not


  • convenient constants found in PcGenInterface 
    
    
  • variable $-prefixed
  • 
    
  • Return _static_
  • Throws _InvalidArgumentException_

* ```source``` [EntityMgr]
    note ```EntityMgr``` below
* Return _static_
* Throws _InvalidArgumentException_


  • convenient shortcut for ```AssignClauseMgr::setSource()```
  • Give source result ```$this->property```
  • 
    
  • Return _static_
  • Throws _InvalidArgumentException_

* convenient shortcut for ```AssignClauseMgr::setSource()```
* Give source result ```$variable```
* ```variable``` _string_
* ```index```  _int_|_string_ opt array index
* Return _static_
* Throws _InvalidArgumentException_


  • true : force ```$class::CONSTANT```
    false : NOT, (default) ```$class->$constant``` 
    
    
  • Return _static_

* ```isConst``` _bool_
   true : force ```$class::variable```
   false : NOT, default, ```$class->$variable``` 
* Return _static_

---

  • Return [TernaryNullCoalesceMgr]

* Return _bool_ true if set, false not


  • 
    
  • 
    
  • Return _static_
  • Throws _InvalidArgumentException_


* Return ChainInvokeMgr


  • Return _bool_ true if set, false not

* ```fcnInvoke``` [FcnInvokeMgr]
* Return _static_
* Throws _InvalidArgumentException_


  • 
    
  • Return _static_
  • Throws _InvalidArgumentException_

Note on chained invokes

  • The first must have a "class" : parent, self, $this, 'otherClass', '$class' when next is set
  • All but first must have $this, 'otherClass', '$class'

Ex on _AssignClauseMgr::setFcnInvoke_ input

[
    FcnInvokeMgr::factory( 'aClass', 'factory', [ 'arg1', 'arg2' ] ),
    FcnInvokeMgr::factory( 'aClass', 'someMethod', [ 'arg3', 'arg4' ] )
]

results in

aClass::factory( $arg1, arg2 )
    ->someMethod( $arg3, arg4 );


* Set assign operator, default  ```=``` 
* ```operator``` _string_, one of ```=```, ```+=```, ..., see [operators]
* Return _static_
* Throws InvalidException

---

#### Misc

_EntityMgr_ instance creation ([EntityMgr])<br><br>

  • convenient constants found in PcGenInterface
    
    

Example

<?php

$code = AssignClauseMgr::init()
    ->setVariableTarget( 'target' )
    ->setVariableSource( 'source' )
    ->toString;

$code .= AssignClauseMgr::init()
    ->setThisPropertyTarget( 'target' )
    ->setThisPropertySource( 'source', 0 )
    ->toString

$code .= AssignClauseMgr::init()
    ->setVariableTarget( 'target' )
    ->setFcnInvoke(
        [
            FcnInvokeMgr::factory( FcnInvokeMgr::THIS_KW, 'function', [ 'argument' ] ),
            FcnInvokeMgr::factory( FcnInvokeMgr::THIS_KW, 'testMethod1', [ 'argument1' ] ),
            FcnInvokeMgr::factory( FcnInvokeMgr::THIS_KW, 'testMethod2' )
        ]
    )
    ->toString



Result :


$target = $source;
$this->target = $this->source[0];
$target = $this->function( $argument )
    ->testMethod1( $argument1 )
    ->testMethod2();

<small>Return to [README] - [Summary]</small>

[ChainInvokeMgr]:ChainInvokeMgr.md [Common methods]:CommonMethods.md [EntityMgr]:EntityMgr.md [FcnInvokeMgr]:FcnInvokeMgr.md [operators]:https://www.php.net/manual/en/language.operators.assignment.php [PropertyMgr]:PropertyMgr.md [README]:../README.md [Summary]:Summary.md [TernaryNullCoalesceMgr]:TernaryNullCoalesceMgr.md [VariableMgr]:VariableMgr.md