LePuTTY의 ZMODEM 기능을 iPuTTY에 포팅을 했습니다.
일단, 동작은 잘 하는 것 같네요. 좀 더 사용해 보고 문제가 없으면 0.69.1 로 릴리즈 할 예정 입니다. 그전에 PuTTY 0.70이 나오면 0.70으로 릴리즈 될 것이고요 :-)
https://github.com/iPuTTY/iPuTTY/pull/25
참고 하세요.
뭘 이런걸..
<?php
switch ($a) {
case '1' :
echo "1\n";
break;
default :
echo "12\n";
}
?>
let g:PHP_vintage_case_default_indent = 1
<?php
switch ($a) {
case '1' :
echo "1\n";
break;
default :
echo "2\n";
}
?>
char * input;
int ilen;
int no;
if ( zend_parse_parameters (ZEND_NUM_ARGS(), "sl", &input, &ilen, &no) == FAILURE )
RETURN_FALSE;
이 코드는 컴파일을 잘 되나, 그냥 segfault 가 발생한다. s(String)과 l(integer)는 다음과 같이 해 줘야 한다.zend_string * Zinput = NULL;
zend_long no;
char * input;
int ilen;
if ( zend_parse_parameters (ZEND_NUM_ARGS(), "Sl", &input, &no) == FAILURE )
RETURN_FALSE;
input = ZSTR_VAL (input);
ilen = ZSTR_LEN (input);
zend_parse_parameters 에서 string은 zend_string으로 변경해 줘야 하고, long은 zend_long로 선언을 변경해 줘야 한다. 이 외에도, string을 zval 변수로 변환하는 경우도 짜증난 케이스zval *zv;
MAKE_STD_ZVAL (zv)
ZVAL_STRING (zv, "문자열");
이 코드는 다음과 같이 변경 되어야 한다.
zval zv;
ZVAL_STRING (&zv, "문자열");
,,,
zval_ptr_dtor (&zv);
이 외에도 너무 많아서 정리가 힘들다. PHP7은 잘못하면 python 3 꼴이 날지도 모르겠다. 3party module 중에서 PHP 7을 지원을 얼마나 빨리 해 주ㄴ냐가 관건인 듯.. 물론 php code 호환 문제 까지는 바라보기도 전에 말이다. (갈 길이 너무 멀다....)
내가 만든 3party 확장들은 PHP 7 지원을 위한 코드 변경이 너무 많아서, 아예 PHP 7 지원하는 버전은 하위 호환성을 포기하고 컴파일을 막아 버렸다. --;
#if PHP_API_VERSION < 20151012
#error "************ PHP version dependency problems *******************"
#error "This package requires over php 7.0.0 !!"
#error "If you build with php under 7.0.0, use mod_krisp 2.x version"
#error "You can download mod_krisp 2.x at http://mirror.oops.org/pub/oops/libkrisp/APIs/php/"
#endif
참고로.. mod_korean migraion diff 를 보면.. 얼마나 많이 변경을 해야 하는지 대충 감이 올 듯.. 이 링크는 아직도 작업이 완료되지 않은 상태이다. --;[root@main ~] pear channel-discover pear.oops.org
Adding Channel "pear.oops.org" succeeded
Discovery of channel "pear.oops.org" succeeded
[root@main ~] pear install oops/NAVER
<?php
/* $Id: test.php 1 2014-05-16 19:11:07Z oops $ */
require_once 'NAVER.php';
session_start ();
// 에러 발생시에 catch를 하기 위하여 error handler를 등록
set_error_handler ('myException::myErrorHandler');
try {
// 발급받은 키를 등록한다.
$login = (object) array (
'id' => '8avBegO24BpmziA3027D',
'secret' => '1zUVPMAl5R',
'callback' => 'http://domain.com/path/this/file'
);
// 인증 과정을 수행
$naver = new NAVER ($login);
// 인증 과정 완료 후 사용자 정보를 가져옴
$user = $naver->getUser ();
// 유저 정보 출력
print_r ($user);
} catch ( myException $e ) {
// 에러 발생시에 다음 출력
echo '<pre>' . PHP_EOL;
echo $e->Message () . PHP_EOL;
print_r ($e->TraceAsArray ());
exit;
}
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* End:
* vim600: noet sw=4 ts=4 fdm=marker
* vim<600: noet sw=4 ts=4
*/
?>
pear NAVER는 deprecate 되었습니다. pear_OAUTH2 package를 사용해 주세요. http://pear.oops.org/docs/oops-OAUTH2/OAUth2.html
mysql의 경우 5.6.17 부터 block_encryption_mode 옵션을 이용하여 AES_ENCRYTP를 AES-256으로 동작 시킬 수 있습니다. 다음 URL 참고 하세요.
http://mysqlblog.fivefarmers.com/2014/03/27/mysql-5-6-17-now-with-better-encryption/
mysql 5.7.4 부터는 key 길이를 32byte로 지정하면 AES-256으로 암호화 가능 합니다.
<?php
# 이미지 길이
$he = 11400;
/*
* 16 x 11400 의 이미지를 생성. gif의 경우 파일 생성이 이상하게
* 되며, png의 경우 브라우저가 인식을 못한다.
*/
$im = imagecreatetruecolor(16, $he);
$gray = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
# background를 투명 처리한다.
imagecolortransparent($im, $black);
for ($i=1; $i<$he; $i+=2 ) {
printf ("%d - %d\n", $i, $i + 1);
imagesetpixel ($im, 7, $i, $gray);
}
imagegif($im, './dashedline.gif');
imagedestroy($im);
?>
Websvn Unified diff patch file
Comments List
ncurses extension 작업 완료
ncurses: https://bugs.php.net/bug.php?id=71299
하.. 숨어있는 문제들이 훨씬 더 많군요 :-(
내부 구조의 많은 변경으로, 단순하게 API 변경만 따라가다가는 엉뚱한 문제들이 송송 터지네요. 예를 들면 https://github.com/expressif/pecl-event-libevent/issues/3 요런 문제들이..
PHP 7의 걸림돌은 3rd party extension 들이겠군요.
참고로 PHP 7을 지원하도록 수정된(거의 비공식적인) 3rd party extension 목록을 공유합니다.
memcache: https://github.com/websupport-sk/pecl-memcache/tree/php7
libevent: https://github.com/expressif/pecl-event-libevent/
event: https://bitbucket.org/osmanov/pecl-event/src/7f233a23b34bb100753971766c5ea2611fe8d023/?at=php7-dev
mongodb: http://pecl.php.net/package/mongodb/1.1.1
등등..