gitとかgithubとかgitlabを一通り勉強して

gitとかgithubとかgitlabを一通り勉強して
githubやgitlabは遠隔でプロジェクト組んで開発する人以外には
必要ないような気がします。

確かにGUIでほぼ面倒な手順は消えてなくなります。
gitとは何かバージョン管理と言われます、
簡単に言えばファイルの世代管理です。

githubやgitlabは何か、リポジトリ管理です。
リポジトリ管理とはなにか、簡単に言えば
バージョン管理を集約したものを管理するものと思ってください。

リポジトリというものを管理したいディレクトリの配下に
置くことでその中のファイルはコマンド打てば
管理下に置くことが出来、世代管理が可能になるということ
ただ、それだけの事です。

ローカルで管理していたものをリモートに置く場合、
プッシュ=アップロード。ダウンロードしたい場合は
プルという事。管理したいファイルはアッドする。
コミットをした時点でファイル履歴となる等など…。

複数人で開発する場合は
グールプを作りその中にユーザを作成し
ローカルからリモートへ接続を行えば良い…
これぐらい覚えとけば良いかなと後はブランチ機能なども
ありますが、この機能を使用すると複雑怪奇になりそうな気がします。

 

MYSQLのif文みたいなものを使用する機会が物凄く少ない気がする。

### mysql case = if文みたいなもの

```sql
select namae,tensu
case when (tensu >= 75 and tensu <= 80)  then '可'
when (tensu >= 25 and tensu < 75)  then '否' else '???' end as kahi
from tbl;
```
table name tbl
|namae|tensu|
|---|---|
|hirose|77|
|non|76|
|arimura|78|
|aragaki|80|

mysql case = if文みたいなものを使用する機会が物凄く少ない気がする。
プログラム言語って使用しなければ抜け落ちるです。
自分の場合、たぶん長期的な記憶に障害があって抜け落ちるです。

メモしたことすら忘れてしまう…これは痛い。

 

 

全ての定義済の変数を配列で返す

全ての定義済の変数を配列で返す関数です。
全てなのでとってきて欲しくないものまでも取ってきます。
なのでそういうのはunsetします。
ちなみに似たようなのでcompactという関数がPHPには存在します。

何に使用する場合に便利かは人それぞれ違いますが
自分の場合はテンプレートエンジンを使用するときに重宝してます。
テンプレートエンジン・・・TwigやSmartyなど

<?php

$a = "abc";
$b = array(1,2,3);
$c = 123;

$vars = get_defined_vars();
unset($_COOKIE);
unset($_POST);
unset($_GET);
unset($_FILES);
unset($GLOBALS);
foreach ($vars as $key => $value) {
    var_dump($key);
    var_dump($value);
}
//...
var_dump($vars);

 

さくらレンタルサーバーとXサーバーのMYSQLの規定

さくらレンタルサーバーとXサーバーのMYSQLの規定は下記になります。
個人で使用する場合、1G、多くて3Gもあればそんなに困らないとは思いますが
企業や仕事で商品データなどをMYSQLサーバーに保存しようとすると足りない。
さくらレンタルサーバーは9Gまで保証してくれるが、それでも足りないっていう
企業の方も多くいると思います。そんな場合はさくらレンタルサーバーだと
共有サーバーを諦めてワンランクアップしたマネージドサーバ(IP専用)を
考えてみると良いかもしれないです。
ちなみにXサーバーはビジネスタイプでも同じ規定です。

https://www.xserver.ne.jp/manual/man_db_spec.php

https://help.sakura.ad.jp/hc/ja/articles/206053142#db

 

さくらレンタルサーバーとかで制限以上のクロンタブ(crontab)を使う方法。

さくらレンタルサーバーとかで制限以上のクロンタブ(crontab)を使う方法
10年ぐらいまえのコードを見直して改善したコードが下記になります。
10年前はクラスを使わない方法で構築したのだけど、今回はクラスの概念を
使って構築。ここ何年かで自分のコーディングの技術は上がっているかといえば
そうでもないですが、昔よりかは技術の幅は広がっていると思いたいw
※qiita日付は数年前にUPしたのですけど、コード自体は10年前のコードです。

 

<?php
//五分置きのクロンを走らせてください。
//php5.6以上推奨? エラーの場合:explodeを見直してください 
class cronphp2{
    
    public $set = array(
            array("file"=>"/home/tool/test1.php","year"=>"*","month"=>"*","day"=>"*","hour"=>"*","minute"=>"*"),
            array("file"=>"/home/tool/test2.php","year"=>"2018","month"=>"7","day"=>"7","hour"=>"*","minute"=>"*/10"),
            array("file"=>"/home/tool/test3.php","year"=>"*","month"=>"*","day"=>"7","hour"=>"7","minute"=>"7")
        );
    
    
    function __construct(){
        if(is_array($this->set)){
            foreach ($this->set as $key => $value) {
  
                    if(!$this->chk($value["year"],"year"))continue;
                    if(!$this->chk($value["month"],"month"))continue;
                    if(!$this->chk($value["day"],"day"))continue;
                    if(!$this->chk($value["hour"],"hour"))continue;
                    if(!$this->chk($value["minute"],"minute"))continue;
                    if(!$value["file"])continue;       
                    $h = @shell_exec("/usr/local/bin/php -f ",$value["file"]);
                    print $value["file"];
                    var_dump($h);
                
            }
        }
    } 
    
    function chk($q1="",$q2=""){

        if(!$q1)return false;
        if(!$q2)return false;
        switch ($q2) {
            case "year":
            case "month":                
            case "day":   
                $ren = array("year"=>"Y","month"=>"n","day"=>"j");
                if($q1==="*"){return true;}
                if(is_numeric($q1)){
                    if((int)$q1 == date($ren[$q2])){return true;}
                }else{
                    return false;
                }
                break;
           case "hour":
           case "minute":
                $ren = array("hour"=>"H","minute"=>"i");
                if($q1==="*"){return true;}
                if(is_numeric($q1)){
                    if((int)$q1 == date($ren[$q2])){
                        return true;
                    }else{
                        return false;
                    }
                }else{
                    if(preg_match("/\*\//",$q1)){
                        $q = explode("*/",$q1)[1];
                        if(date($ren[$q2])%(int)$q==0){
                            return true;
                        }else{
                            return false;
                        }                       
                    }
                    return false;
                }
                break;
            default:
                return false;
                break;
        }
        
        return false;
     }
}
$crn = new cronphp2();