Lv1プログラマの誰得メモ

総務女子の趣味とか勉強に関係することのメモ

「メソッド any(xxxx) は型 XXXX であいまいです」の原因

システム改修後のテストでmockito.Matchersのany()を使用したら以下のようなメッセージが表示された。

「メソッド any(xxxx) は型 XXXX であいまいです」

改修したほかのクラスではエラーが発生しなかったのですが、特定のクラスのみこのエラーが発生しました。なぜ??

と思ったら、同じany()で以下のimportが衝突していました。

  • org.hamcres.CoreMatchers
  • org.mockito.Matchers

前の担当者の名残かな

セル結合しなくとも複数セルの範囲内で中央揃えができる

セル結合は罪(使ってないとは言ってない)
でもどうしても複数セルにまたがった範囲内で中央揃えしたくなったりする。そんなときは以下の手順でセル結合しないで中央ぞろえが可能。

中央揃えしたい範囲を選択する。 f:id:megsan:20220103161626p:plain

右クリックで「セルの書式設定」を選択する。 f:id:megsan:20220103161105p:plain

「配置」タブで「横位置」を「選択範囲内で中央」に設定する。 f:id:megsan:20220103161238p:plain

そうするとセル結合しなくても選択範囲(B2~F2)内で中央揃えされる。 f:id:megsan:20220103161743p:plain

選択範囲内のどこかで値を挿入すると範囲の定義が変わってしまうので、そこだけ注意です。 下の画像の場合だと、E2に値を挿入すると、「B2にある」の範囲がB2~D2に、「E2に追加」の範囲がE2~F2になってしまう。 f:id:megsan:20220103162015p:plain

SlimをApacheで実行すると"Not found"例外が発生する【PHP】

Slimフレームワーク公式(Slim Framework - Slim Framework)に則ってSlim4でプロジェクトを作成したはずが、いざApacheで実行すると"Not found"例外が発生してしまった。

f:id:megsan:20220213170652p:plain

手順

手順としてはざっくり以下の通り。

1.Composerで本体をインストール

 composer require slim/slim

2.PSR-7インストール

composer require slim/psr7

3.public/index.php の作成

<?php
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Slim\Factory\AppFactory;

require __DIR__ . '/../vendor/autoload.php';

$app = AppFactory::create();

$app->get('/', function (Request $request, Response $response, $args) {
    $response->getBody()->write("Hello world!");
    return $response;
});

$app->run();

ディレクトリ構成は以下のようになった。

slim4sample\
├ public\
│  └ index.php
├ vendor\
│  └ 省略
├ composer.json
└ composer.lock

解決方法

実はstack overflowに同じようなQAが載ってました。 stackoverflow.com

簡単な解決方法としては以下のコードを index.php の9行目あたりに追記するだけ。

$basePath = str_replace('/' . basename(__FILE__), '', $_SERVER['SCRIPT_NAME']);
$app = $app->setBasePath($basePath);

ベースになるパスはここですと指定するコードです。 指定すると以下のように値がセットされます。

f:id:megsan:20220213181422p:plain

ちゃんとHelloWorldが表示されました。 f:id:megsan:20220213182220p:plain