Skip to content
  • totten's avatar
    Civi::paths() - Decouple settings from paths. Allow path vars. · e3d28c74
    totten authored
    There has been a policy underwhich paths and URLs are assumed to be relative
    to different points (urls => webroot; paths => sites/*/files/civicrm).  For
    some settings, this is fairly confusing.  The policy had been encoded in
    `SettingsBag::getPath` and `SettingsBag::getUrl`.  It's particularly
    confusing because (sometimes) the default value of a specific property isn't
    really aligned with the policy.
    
    This revision attempts to cleanup in two ways:
    
     1. It removes policy from `SettingsBag` and puts it in `Civi\Core\Paths`.
     2. It makes the policy less important by allowing variables in the paths.
       * `[civicrm.files]/upload` might evaluate to `/var/www/sites/default/files/civicrm/upload`
       * `[cms.root]/myuploads` might evaluate to `/var/www/myuploads`
    
    The revision also updates MagicMerge to store various path and URL policies
    in `getPropertyMap()` rather than adhoc callbacks.
    e3d28c74