rhymix/classes
Kijin Sung 9a83e71bff Allow adding error message and sprintf() variables using setError()
xpressengine/xe-core#2181 적용시 에러 반환 문법을 단순화하기 위한 조치

기존 방식: return new Object(-1, '에러메시지');
XE 제안 방식: return class_exists('BaseObject') ? new BaseObject(-1, '에러메시지') : new Object('에러메시지');
라이믹스 방식: return $this->setError('에러메시지');

기존의 setError() 메소드가 에러 코드만 받을 수 있어서 호환성 보장에 도움이 안 되므로
에러 코드와 에러 메시지를 동시에 넣을 수 있도록 개선하고,
에러 코드를 넣지 않고 에러 메시지만 지정해도 자동으로 -1 에러 코드가 들어가도록 하였음.
(첫 번째 인자가 정수인지 아닌지에 따라 판단함.)

setError(), setMessage(), setMessageType() 등 기존에 무의미한 반환값을 가지던 메소스들 모두
$this를 반환하도록 함으로써 액션이나 트리거 등의 반환값으로 유효하도록 하고,
원할 경우 method chaining까지 사용할 수 있음.

또한 에러메시지에 변수를 넣어야 할 경우
return new Object(-1, sprintf(Context::getLang('error_msg'), $var1, $var2));
이렇게 복잡해지는 문제도 해결하기 위해
setError()에 추가로 넣은 인자는 모두 자동으로 sprintf() 처리를 거치도록 함.
예: return $this->setError('error_msg', $var1, $var2);

즉, 아래와 같은 호출 형태가 모두 유효함.

  - $this->setError(-1);
  - $this->setError(-1, 'error_msg');
  - $this->setError(-1, 'error_msg', $var1, $var2);
  - $this->setError('error_msg');
  - $this->setError('error_msg', $var1, $var2);

단, 이 커밋 이후 신규 작성하는 코어 클래스나 서드파티 자료에서만 사용할 수 있음.
기존 버전과의 호환성을 유지하기를 원하는 서드파티 자료는 XE에서 제안한 삼항식을 사용해야 함.
2017-11-27 16:33:33 +09:00
..
cache Add Cache::getDriverName() and clean up confusing method names 2016-04-24 16:02:54 +09:00
context Update procMemberAuthAccount 2017-10-13 17:08:35 +09:00
db Change data type of module_config.config to bigtext 2017-11-27 13:03:47 +09:00
display Fix compatibility with sketchbook skin after removal of XpressEditor 2017-10-29 01:43:22 +09:00
editor copyright add to php files 2013-11-08 05:52:51 +00:00
extravar Add password (hidden text) extravar type 2016-04-24 23:17:43 +09:00
file Use Storage::deleteEmptyDirectory() in FileHandler::removeEmptyDir() 2017-01-26 18:01:47 +09:00
frontendfile Fix handling of external CSS/JS URLs with query strings 2017-08-16 23:05:45 +09:00
handler copyright add to php files 2013-11-08 05:52:51 +00:00
httprequest PHP 5 방식의 생성자 (__construct) 사용 2015-04-01 11:30:04 +09:00
mail Add more unit tests for the legacy Mail class 2016-05-23 21:58:37 +09:00
mobile Do not explicitly set the domain for session cookies 2017-02-17 19:33:05 +09:00
module Allow adding error message and sprintf() variables using setError() 2017-11-27 16:33:33 +09:00
object Allow adding error message and sprintf() variables using setError() 2017-11-27 16:33:33 +09:00
page PHP 5 방식의 생성자 (__construct) 사용 2015-04-01 11:30:04 +09:00
security Import cryptographic signature functions from XE 1.8.23 2016-08-02 16:30:33 +09:00
template 네모의 꿈/ 컨텐츠 위젯 스킨 (#712) 2017-02-26 01:05:57 +09:00
validator - invalid_float 메시지 추가 2016-08-02 16:00:47 +09:00
widget copyright add to php files 2013-11-08 05:52:51 +00:00
xml Support <offset> in XML query <navigation> section 2016-09-14 13:44:35 +09:00