# |
Dec 10th 2017, 17:54 |
Guest24244 |
how to solve it ? |
# |
Dec 10th 2017, 17:54 |
Guest24244 |
but it is showing me php ext intl missing.. |
# |
Dec 10th 2017, 17:54 |
Guest24244 |
i was installing cakephp3 on centos |
# |
Dec 10th 2017, 17:54 |
Guest24244 |
hi |
# |
Dec 10th 2017, 14:55 |
saeideng |
configShallow is good thing :) |
# |
Dec 10th 2017, 14:55 |
saeideng |
by configShallow I able now to use both ``` $this->addBehavior('UploadConfig',['fields'=>['image','img']]); $this->addBehavior('UploadConfig'); ``` |
# |
Dec 10th 2017, 14:50 |
admad |
well earlier you never mentioned you can skip using the `fields` key when adding the behavior |
# |
Dec 10th 2017, 14:49 |
saeideng |
``` public function initialize(array $config) { $configs = []; foreach ($config as $field => $settings) { if (is_int($field)) { $configs[$settings] = []; } else { $configs[$field] = $settings; } } $this->setConfig($configs); } ``` |
# |
Dec 10th 2017, 14:49 |
saeideng |
for example |
# |
Dec 10th 2017, 14:48 |
saeideng |
I know |
# |
Dec 10th 2017, 14:48 |
admad |
my code will give you exact same result |
# |
Dec 10th 2017, 14:48 |
saeideng |
$this->setconfig(['fields'=>['image1']]); |
# |
Dec 10th 2017, 14:48 |
saeideng |
`$this->configShallow(['fields'=>['image1']]);` |
# |
Dec 10th 2017, 14:48 |
saeideng |
but i my case I have array as first arg |
# |
Dec 10th 2017, 14:47 |
saeideng |
@admad in above your code you used a key/value |
# |
Dec 10th 2017, 14:47 |
admad |
nothing confusing, it uses Hash::merge() internally :slightly_smiling_face: |
# |
Dec 10th 2017, 14:46 |
dereuromark |
part of that ticket is to think about if we can use shallow by default, and use non shallow = deep manually |
# |
Dec 10th 2017, 14:46 |
saeideng |
setConfig have a bit confusing about arrays and merge/unmerge |
# |
Dec 10th 2017, 14:44 |
saeideng |
thanks @admad, @dereuromark for your points |
# |
Dec 10th 2017, 14:43 |
saeideng |
:slightly_smiling_face: |
# |
Dec 10th 2017, 14:43 |
saeideng |
configShallow solved my problem |
# |
Dec 10th 2017, 14:43 |
dereuromark |
the non assoc array inside assoc config array always has been a painpoint for configuration and merging :slightly_smiling_face: See https://github.com/cakephp/cakephp/issues/7267 |
# |
Dec 10th 2017, 14:42 |
admad |
personally i just wouldn't have `'fields' => ['image']` as default. |
# |
Dec 10th 2017, 14:41 |
dereuromark |
there should be a shallow* |
# |
Dec 10th 2017, 14:41 |
admad |
``` public function initialize($config) { if (!empty($config['fields])) { $this->setConfig('fields', $config['fields], false); } } ``` |
# |
Dec 10th 2017, 14:39 |
saeideng |
without merging |
# |
Dec 10th 2017, 14:39 |
saeideng |
so how can put array into this method ? |
# |
Dec 10th 2017, 14:38 |
saeideng |
`public function setConfig($key, $value = null, $merge = true)` |
# |
Dec 10th 2017, 14:38 |
admad |
that's expected, since by default options are merged |
# |
Dec 10th 2017, 14:38 |
saeideng |
I need to override the config |
# |
Dec 10th 2017, 14:37 |
saeideng |
my output ``` [ (int) 0 => 'image', (int) 1 => 'image', (int) 2 => 'img', (int) 3 => 'image1' ] ``` |
# |
Dec 10th 2017, 14:37 |
saeideng |
and ``` protected $_defaultConfig = [ 'fields' => ['image'] ]; ``` |
# |
Dec 10th 2017, 14:36 |
saeideng |
and within behavior ``` public function initialize(array $config) { $this->setConfig(['fields'=>['image1']]); } ``` |
# |
Dec 10th 2017, 14:36 |
saeideng |
`$this->addBehavior('UploadConfig',['fields'=>['image','img']]);` |
# |
Dec 10th 2017, 14:36 |
admad |
you are using `$this` so isn't it obvious whether it's a static call or through instance? |
# |
Dec 10th 2017, 14:36 |
saeideng |
see my example |
# |
Dec 10th 2017, 14:34 |
slackebot |
Action: admad sighs |
# |
Dec 10th 2017, 14:34 |
saeideng |
I dont know |
# |
Dec 10th 2017, 14:34 |
admad |
do you use a behavior statically or through instance? |
# |
Dec 10th 2017, 14:33 |
saeideng |
`$this->setConfig($configs);` |
# |
Dec 10th 2017, 14:33 |
saeideng |
because I set |