バグにつながりそうな怪しい ソースコードをチェックして教えてくれる php md。
コーディング時に必ず使うようにしておくとミスやバグが減るので是非使いましょう
composer global require phpmd/phpmd
echo 'export PATH=$HOME/.composer/vendor/bin:$PATH' >> .bash_profile
source .bash_profile
phpmd --version
(ソースファイル myfile.php チェックしテキストデータで結果を受け取る。チェックする項目は
codesize,controversial,design,naming,unusedcode)
phpmd myfile.php text codesize,design,naming,unusedcode
オプションの意味
codesize コードが大きすぎないかチェック
controversial 命名規則など議論の余地がある部分を検出するチェック
design 設計上の関連のチェック
naming 変数名など名前関連のチェック
unusedcode 使われていない変数のチェック
cleancode 綺麗なコードかチェック
書式は以下の通りです
phpmd (phpファイル名) ( text または xml または html ) (オプションをカンマで区切る)
引用 : https://simple-it-life.com/?p=761
次のパッケージをインストールします
SublimeLinter
SublimeLinter-phpmd
【Package Settings】→【SublimeLinter】→【Settings - User】に記述があります。
設定例: (ルールセットから controversial, design, naming を取り除いています)
"linters": {
"phpmd": {
"@disable": false,
"args": [],
"excludes": [],
"delay": 0.75,
"rulesets": "cleancode,codesize,unusedcode"
}
}
また反応速度が速いとオートコンプリートと機能がバッティングしてしまうので、SublimeLinterのDelayの値を少し多めにしてやると良いと思います
設定例: ディレイ値を増やす
"delay": 0.75,
これで PHPファイルを開いているときに自動的にソースのおかしそうなところを指摘してくれます。
@todo をハイライト表示してくれるのでとても便利です。
PHPMDのエラーを回避したい場合は、ソースコードの クラス名またはメソッドの上に PHPDOC 形式で SuppressWarnings を指定することで エラー表示を回避することが出来ます。 指定できる文字列は (PHPMD.XXXXX) という形式で、XXXXXに指定する文字列はこちらのページから調べることが出来ます。
https://phpmd.org/rules/index.html
例)StaticAccess と ElseExpression 2つのエラーを表示しないようにします
/**
* @SuppressWarnings(PHPMD.StaticAccess)
* @SuppressWarnings(PHPMD.ElseExpression)
*/
public function hogehoge( $arg )
{
// code ...
}
https://packagist.org/search/?q=Readability
https://packagist.org/packages/j0k3r/php-readability
composer require j0k3r/php-readability
use Readability\Readability;
$url = 'http://www.medialens.org/index.php/alerts/alert-archive/alerts-2013/729-thatcher.html';
// you can use whatever you want to retrieve the html content (Guzzle, Buzz, cURL ...)
$html = file_get_contents($url);
$readability = new Readability($html, $url);
// or without Tidy
// $readability = new Readability($html, $url, 'libxml', false);
$result = $readability->init();
if ($result) {
// display the title of the page
echo $readability->getTitle()->textContent;
// display the *readability* content
echo $readability->getContent()->textContent;
} else {
echo 'Looks like we couldn\'t find the content. :(';
}
ターミナルから次のように入力する
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
composer -v
composer require 『パッケージ名』
(例 バージョン 1.5.4 をインストールする場合)
composer require 『パッケージ名:1.5.4』
composer remove --update-with-dependencies 『パッケージ名』
ファイル application/config/config.php に設定があるので以下のように変更します
$config['composer_autoload'] = TRUE;
composer.json があるディレクトリから下記のコマンドを実行
composer --optimize-autoloader update
ファイル vendor/composer/autoload_classmap.php の中身がフルパスを記述したものに書き換わりファイルを探しに行く時間が短縮されるので高速になります。
composer.json があるディレクトリから実行します
composer show
composer.json があるディレクトリから実行します
composer update
composer自身(自体)をアップデートします。
composer self-update
$file_path = 'data_100.csv';
$file = new SplFileObject($file_path);
$file->setFlags(SplFileObject::READ_CSV);
$convert_count = 0;
foreach ($file as $line) {
print_r($line);
}
PHPだけでCSV読み込みは可能ですが、工夫しないと改行のみの行も出力されます。
https://packagist.org/packages/league/csv
composerを使用します
composer require league/csv
composerを使用しているので autoload.php を読み込みます
$php_version = (float)phpversion();
if ( $php_version < 7.0 ){ die("league/csv を使用するにはPHP バージョン7.0以上が必要です");}
require './vendor/autoload.php';
use League\Csv\Reader;
// CSVファイルの読み込み
$csv = Reader::createFromPath("./language.csv");
// ヘッダ(先頭行)を取得
$headers = $csv->fetchOne();
var_dump($headers);
// CSVデータを読み込んで出力
$records = $csv->getRecords();
foreach ($records as $offset => $record) {
print_r($offset);
print_r($record);
}
$php_version = (float)phpversion();
if ( $php_version < 5.5 ){ die("league/csv を使用するにはPHP バージョン5.5以上が必要です");}
require APPPATH.'/vendor/autoload.php';
use League\Csv\Writer;
// ファイルの出力
$csv_writer = Writer::createFromFileObject(new SplTempFileObject());
$csv_writer->insertOne( array('カラム1','カラム2','カラム3' ) );
$csv_writer->output('users.csv');