こんにちは、ねこです。

自称プログラマのおばちゃんのブログです。いろいろあるよねぇ~。

2016年 ベスト10 PHPフレームワーク

2017-02-07 08:34:05 | PHP

おはようございます。

ねこです。

今日はいまさらか、の2016年ベスト10PHPフレームワークです。

HONGKIAT様のさいとより。

http://www.hongkiat.com/blog/best-php-frameworks/

 

1.なんと!!!あのLaravelなんですねぇ。2011年に開発されたにもかかわらず、王道一位!!!ローカル開発ができるようにVagrant boxにパッケージされたものが合って、人気の一番!!!つかってみなきゃな、とおもいながら、いそがしくってむぅ~りぃ~。。。日本では使ってる人少ないよねぇ。。。

 

2.Symfonyだってさ!!!なんと、日本と違うこと。。。日本では絶対CakePHPが来るって思う。Wordpressなんかより、Drupalのほうが人気あるから、Drupalが書かれてる関係かな。。。

 

3.CodeIgniter。。。なんやこれ。きいたことありませんがな。でも堂々の三位。もう10年ぐらいなるそうな。何で人気かというと、PHPのバージョンに左右されないからだって。どゆこと?わからん。。。それも、完全MVCでなくって、コントローラーベースで書いていくそうです。

 

4.Yii2、これはね、名前だけは聞いたことがある。なんでかっていうと、これば出たときにいっちゃんはやいフレームワークだと話題になったから。jQueryなんかとセットでつかってAJAXできる機能がいっぱい。とにかく、フロントエンドのひとだったらこれがお勧めだそうです。

 

5.Phalcon,しりませんねぇ。。。CとC++でかかれてるそう。なんやら、C-extensionってな機能でPHPでかけるけど、実際にはCなんかみたいにむっちゃ走るんが早いそうです。でも2013年に2番だったのに、去年は5番落ち。。。なにがあかんかったんやろう。そっちがきになる。

 

6.ここでやっと。。。『CakePHP』。なんだかなぁ。。。書かんでもええか。。。

 

7.でた!殿様商売、Zendさまが出してるZend Framework!!!これはね、AS400なんかつかってたでっかい企業がWEB化を計る時にとっても役に立ちそうです。ねこなんかもいつかつかってみたいなぁ。。。でもZend StudioなんてIDEが必要になってくるし、なんたって情報が少なすぎる!!!アラン・セイデン(System i / Zend開発者)さんよ、もっとわかり安くyoutubeビデオでもつくってくでぇ~!!!

 

8.Slim

9.FuelPHP

10.PHPixie

こうしてみるとほんと、様変わりしちゃいました。

ねこてきには、時間かけて勉強してもつかいこなせねーなぁー。。。

 


AngularとDOJOの違い比べてみた。

2017-02-06 06:15:16 | Dojo ToolKit

みなさん、おはよーございます。

今日は、AngularとDOJOの違い比べてみました。こちら、四枚のねこの写真をスライドショウさせるだけのプログラム

こちらDOJO

http://jsfiddle.net/treasonx/FB3zs/6/

そして、こちらAngularJS

http://jsfiddle.net/treasonx/Ukf39/9/

[CSS両方とも]

.image img {
display: block;
}

[DOJO HTML]

<h1>Show Time</h1>
<div data-dojo-type="kittenShow" data-dojo-props="slideCount: 5, delayTime: 3"></div>

[AngularJS HTML]

<div ng-app="meow">
<h1>Show Time</h1>
<kitten-show kt-slides="5" kt-delay="3"></kitten-show>
</div>

 

--------------------------------------------------------------------------------------------------------------------------------------

[DOJOコード]

require([
'dojo/parser',
'dojo/_base/lang',
'dojo/_base/declare',
'dijit/_WidgetBase',
'dijit/_TemplatedMixin',
'dojo/domReady!'
], function(
parser,
lang,
declare,
_WidgetBase,
_TemplatedMixin) {

declare('kittenShow', [_WidgetBase, _TemplatedMixin], {//ここで_WidgetBase, _TemplatedMixinをつかって’kittenShow’という、ウィジットをあたらしくつくってますね。これで直接HTMLを書いてそこに反映させるようです。
slideCount: 0,
delayTime: 0,
_currentSlide: 0,
_imageSizes: [],
templateString: '<div class="frame"><div class="image"><strong data-dojo-attach-point="titleEle"></strong><img data-dojo-attach-point="imgEle"></div></div>',
startup: function() {
this._imageSizes = generateImageSizes(this.slideCount);
this._updateShow();
setInterval(lang.hitch(this, function() {
this._updateShow();
}), this.delayTime*1000);
},
_updateShow: function() {
var size;
this._currentSlide = ++this._currentSlide >= this._imageSizes.length ? 0 : this._currentSlide;
size = this._imageSizes[this._currentSlide];
this.titleEle.innerHTML = 'kitten '+ this._currentSlide;
this.imgEle.src = 'http://placekitten.com/'+size.width+'/'+size.height;
}
});

parser.parse();//ここでパースさせてウィジットを完成させてます。

//utility functions
function randomSize() {//generateImageSizesにつかうサイズをランダムに計算させるプロパティを作成

return Math.floor(Math.random()*15) * 50;

}

function generateImageSizes(count) {//this._imageSizesでつかうプロパティを作成
var out = [];
var width;
var height;
while(count--) {
width = randomSize();
height = randomSize();
if(width > height) {
height = width / 0.5;
} else {
width = height / 0.5;
}
out.push({
width: width,
height: height
});
}
return out;
}
});

 

--------------------------------------------------------------------------------------------------------------------------------------

[AngularJSコード]

 

(function(angular) {

var module = angular.module('meow', []);//meowのモジュールを定義してディレクティブの受け皿を作る。この中のものはangularですべて料理できる。


//kittenshowのディレクティブを着くる。やっぱr、テンプレートは直でHTML
module.directive('kittenShow', function() {
return {
restrict: 'E',
replace: true,
template: '<div class="frame"><div class="image"><strong>kitten {{name}}</strong><img src="http://placekitten.com/{{width}}/{{height}}"></div></div>',
link: function(scope, ele, attrs){
var slideCount = parseInt(attrs.ktSlides, 10) || 4;
var delay = parseInt(attrs.ktDelay, 10) || 3;
var sizes = generateImageSizes(slideCount);
var currentSlide = 0;

function rotateImage() {
currentSlide = ++currentSlide >= sizes.length ? 0 : currentSlide;
scope.width = sizes[currentSlide].width;
scope.height = sizes[currentSlide].height;
scope.name = currentSlide;
}

rotateImage();

setInterval(function() {
scope.$apply(rotateImage);
}, delay*1000);

}
};
});

// utility functions
function randomSize() {
return Math.floor(Math.random()*15) * 50;
}

function generateImageSizes(count) {
var out = [];
var width;
var height;
while(count--) {
width = randomSize();
height = randomSize();
if(width > height) {
height = width / 0.5;
} else {
width = height / 0.5;
}
out.push({
width: width,
height: height
});
}
return out;
}
}(this.angular));

 

--------------------------------------------------------------------------------------------------------------------------------------

 実際ねこが使ってみて最初に思ったのは、動いてるレベルが完全にちがうので、それぞれつかいわけてみてもいいんじゃないか、ということです。
たとえば、メインの『request』や『ウィジット』なんかはDOJOでかいて、その他の動的ページアクションは影響されずに直である吐き出され済みのHTMLを操作できるangularでやるみたいな。データがあってもなくてもangularならそのまま箇所箇所で動いてくれるんで、DOJOのバグに左右されないという利点があります。
 
たとえば、こんなコード

var app = angular.module('myApp', []);
app.controller('sessionController', function($scope, $http) {

$scope.session1 = false;
$scope.toggle_session1 = function(){$scope.session1 = !$scope.session1;};

$scope.session2 = false;
$scope.toggle_session2 = function() {$scope.session2 = !$scope.session2;};
 });

session1とsession2が個々にshow/hideしてくれます。のこりはこの中にDOJOつかって書き込んだらいいですよね。

もちろん、両方ともjavascriptなんで約束変数の名前衝突なんかはきをつけないとね。おぉ、あとangularは使いすぎると重くなってしまいますので、きをつけましょう!!!

 

あぁ、今日は月曜日。。。気が重い。

でもがんばるでぇ~!!!

 

ねこでした。


みんな、Online PHP function(s){ ってしってる?

2017-02-02 07:41:53 | プログラム 勉強

おはようございます、ねこです。

最近のオンラインツールはすばらしいっ!!!

ずぅ~と前にねこが「お気に入り」に入れてわすれてたサイトをご紹介いたします。

みなさん、json ファイルの組み方で悩まれた経験はありませんか?

ねこは、javascriptのDOJOというツールをつかっているので、そこのDataGridや、TreeGridなんかで、動的につくるのに結構大変なjsonファイルの自動吐き出しを作ったことがありました。どうしてもarrayを反映させてやるんで、思っても見ない形になったりして、javascriptのツールでやるか、PHPでやるか悩んだもんです。結局はローカルでやらせたかったんで、javascriptを選んだんですがね。

そこで、このサイトを見つけたんです。

たったらぁ~ん、あぁ、いらっときた?ごめんなさい。

Online PHP function(s){

では、まずはjson_encode、したのarrayをエンコードします。

そしたら、こんなかんじで吐き出してくれちゃいます。いいでしょう!

つぎはハッシュ。いろんな種類のハッシュをこんなかんじでエンコード・デコードしちゃうんだよ、ってのを見せてくれるんだけど、これっていいのかな?勉強ぶそくですみません。

base64でエンコードされたものを一度つくってみて。。。

デコードしてみたら、ほうら、最初のと同じ。

preg_replace はとっても役に立つ。。。

 

その他にもチュートリアルだとか、いっぱいあるんで勉強もできますね。

つかってみたいファンクションもいろいろあるからためせるしね。

 

いいでしょう!!!

ねこでした。

 

 

 

 


アメリカの剣道のこと

2017-02-01 07:38:01 | 剣道

おはようございます。

ねこです。

今日はねこの剣道のおなかまについて少しご紹介。。。

あめりかはですね、剣道結構盛んです。でも、ねこの住んでるこの中部地区はほとんど剣道やってる人いません。

ねこも年に一回、コロラドまでいって稽古をつけてもらってから、あと数人のメンバーと剣道やってます。

そのうえ誰がそうしたのか、まぁ、いろいろとグループがめっちゃたくさんにわかれてるんですな。そのせいかして、なかなかそのグループをいったりきたりできないようになってます。こんなに剣道人口すくないのに。。。

みんな一緒に仲良く剣道しましょ!?

ということで、月に二度ほど有段者のみで(隠れて?)気の合う物遠し練習してます。えどさんありがとー!!!

で、こちらに日本人剣士、、、なのですが、アメリカの剣道貢献に人生をつぎ込んでる若者がいます。わたし、このかた、大好きです。「ぶれ」がないんすよ。竹刀のようにまっすぐ、そして柔軟にしなる!その名も、「たくちゃん」

こちら、2013年のビデオです。本人は、「足がなってない!!!はずかしい!!!」なんていってるけど、この一年弱の間にアキレス腱きって大手術してんだよ、このひと。

脱帽者です。←ふるいか!?ふるいのか!?

天性の剣道家、「たくちゃん」の剣道ビデオ、右側のすらっとした背の高い男の子です。

参照元:https://www.youtube.com/watch?v=zHJ6YG3krYM&t=199s

 

読んでくれてありがとう!

 

ねこでした。