asklife

IT&Life

Category: PHP (page 1 of 16)

Mac YosemiteでEclipse PHP環境構築

Yosemite OS – Eclipse for PHP

Macを新調したのでPHPの環境構築です。
Yosemiteだとちょっと違いますね。

MAMPをダウンロード

いつもの通り、Apache-MySQL構成にします。
最新のMAMPはNginxも入ってるんですね。今度試してみよう。
MAMPはこちらからダウンロードしてください。

MAMPを入れたらファイアウォール設定しておきましょう。
/Applications/MAMP/conf/apache/httpd.conf

<Directory "/Applications/MAMP/htdocs">
中略
#
# Controls who can get stuff from this server.
#
#Order allow,deny ←★ここをコメントアウト
#Allow from all ←★ここをコメントアウト
</Directory>

Eclipseをダウンロード

いつもの通り、Eclipse for PHP Developersを使おうと思いましたが、
YosemiteだとJavaバージョン違うぞと言われ、面倒なことに。

Version 1.6.0_65 of the JVM is not suitable for this product.
Version: 1.7 or greater is required.

なんで、Eclipse IDE for Java Developersを使うことにしました。

Eclipse本体はこちらからダウンロードしてください。

PleiadesのdropinsでEclipseを日本語化

いつもの通り、Pleiadesをダウンロードして使います。

まずは日本語化します。本体は前述のEclipseを使って、Pleiadesはプラグインの部品を使うだけです。

日本語化部品をEclipseに入れる。

Pleiadesのpleiades/eclipse/dropins/MergeDocディレクトリを
Eclipse本体のeclipse/dropinsにコピー

eclipse.iniの設定
Macの場合
eclipse本体のEclipse.app→メニュー→パッケージの内容を表示
/Contents/MacOS/eclipse.iniに下記を追加

-Dfile.encoding=UTF-8
-javaagent:../../../dropins/MergeDoc/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar

eclipse.appを起動し、日本語化されていたらOK!

Pleiadesはこちらからダウンロードしてください。

PHPプラグインを入れる

Help -> Install New Software… を選択
Work with: で Luna を選択
phpで検索 ->「PHP Development Tools」を選択
Next > あとはウィザードの通りに進みます。

参考
http://qiita.com/alegriaghost/……7e0342362b
http://slumbers99.blogspot.jp/……lipse.html
http://sole-color-blog.com/php/php/124/

AWSでPHPとCakePHPとついでにRedmineをインストールする手順

PHPとCakePHPをインストール

CakePHP環境を立てるための手順です。
ついでにRedmineも入れます。

Apache/MySQL/PHPインストール

UbuntuにApache/MySQL/PHPをLAMP環境で入れます。
まずはapt-getを最新化

sudo apt-get update

次にLAMPとしてApache/PHP/MySQLを入れます。

sudo apt-get install lamp-server^

PHPが入りました。

ubuntu@ip-xx:~$ php -v
PHP 5.5.9-1ubuntu4 (cli) (built: Apr  9 2014 17:11:57) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
    with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies

Apacheが入りました。

ubuntu@ip-xx:~$ apachectl -v
Server version: Apache/2.4.7 (Ubuntu)
Server built:   Jul 22 2014 14:36:38

MySQLが入りました。

ubuntu@ip-xx:~$ mysql --version
mysql  Ver 14.14 Distrib 5.5.40, for debian-linux-gnu (x86_64) using readline 6.3

参考
https://help.ubuntu.com/commun……heMySQLPHP

CakePHPをインストール

参考
http://qiita.com/tennmu/items/……e966d5cc01

Redmineをインストール

PHP Notice: has_cap の使用はバージョン 2.0 から非推奨になりました ! プラグインやテーマでのユーザーレベルの使用は推奨されていません。代わりに権限グループと権限を使ってください。 wp-includes/functions.php on line 3318

PHP Notice: has_cap の使用はバージョン 2.0 から非推奨になりました ! プラグインやテーマでのユーザーレベルの使用は推奨されていません。代わりに権限グループと権限を使ってください。 wp-includes/functions.php on line 3318
というエラーが出ました。

以下参考ページと同じ現象で
http://www.crossl.net/blog/wp_……e_has_cap/
http://curious-everything.com/……entry.html

Advanced make clickableプラグインのadd_options_page関数にて権限を数字で指定しているためNGということですね。

function amc_adminmenu(){
   //add_options_page('Advanced Make Clickable Options', 'Adv-Make-Clickable', 9, 'advanced-make-clickable.php', 'amc_options');
   add_options_page('Advanced Make Clickable Options', 'Adv-Make-Clickable', 'administrator', 'advanced-make-clickable.php', 'amc_options');
}

PHP Noticeエラーを握りつぶす

該当ソースの.phpファイルにて

error_reporting(E_ALL & ~E_NOTICE);

とする。

Noticeエラーは出ているけど、ログに出力させない。

CakePHPでモバイルとPCのレイアウトを分ける手順

はじめに

CakePHPでモバイルとPCのデザインを分離していきます。

UserAgentで端末を判定

判定処理をComponentに実装します。
app/Controller/Component/MyRequestHandlerComponent.php

<?php
App::uses('RequestHandlerComponent', 'Controller/Component');

class MyRequestHandlerComponent extends RequestHandlerComponent
{
    public function isSmartPhone() {
        $ua = env('HTTP_USER_AGENT');
        return ((strpos($ua,'iPhone')!==false) || (strpos($ua,'iPod') !== false) || (strpos($ua,'Android') !== false));        
    }
}

次に、全コントローラーのインスタンスを生成する際に、スマホかどうかをチェックします。
モバイルテーマと設定してあげると、/View/Event/add.ctp ではなく /View/Themed/Mobile/Event/add.ctp となります。
app/Controller/AppController.php

App::uses('Controller', 'Controller');
App::uses('AuthComponet', 'Controller/Component');

class AppController extends Controller {
    public $components = array(
    	'Auth'=>array(),
  	'RequestHandler' => array('className' => 'MyRequestHandler')
    );
   
    public function beforeFilter() {
		$this->log('[AppController/beforeFilter()] REQUEST', 'debug');    	
		$this->Auth->allow();
		
	    if($this->RequestHandler->isSmartPhone()) {
	        $this->theme = 'Mobile';
	    }		
    }		
}

画面確認

FireMobileSimulatorというUA変更ツールがあります。

それをChromeに入れて、iPhoneやAndroidの画面で開発を進めましょう。

参考

http://weble.org/2012/04/30/ca……ery-mobile
http://www.polidog.jp/2013/07/……定する/

Older posts

© 2017 asklife

Theme by Anders NorenUp ↑