36. PHP 5.4.0RC1 Development Server started at Thu Nov 24 02:11:37 2011
Listening on localhost:8080
Document root is /Users/tanakahisateru/Sites/cakephp2
Press Ctrl-C to quit.
[Thu Nov 24 02:11:42 2011] ::1:63556 [200]: /app/webroot/css/cake.generic.css
[Thu Nov 24 02:11:42 2011] ::1:63557 [200]: /app/webroot/img/cake.power.gif
[Thu Nov 24 02:11:42 2011] ::1:63558 [200]: /app/webroot/img/cake.icon.png
[Thu Nov 24 02:11:42 2011] ::1:63564 [200]: /app/webroot/favicon.ico
37. MacPorts MySQL
php.ini
% ~/php54/php-5.4.0RC1/ sapi/cli/php -c ~/php54/
php-5.4.0RC1/ -S localhost:8080 builtin-server.php
~/php54/php-5.4.0RC1/php.ini
[Pdo_mysql]
pdo_mysql.default_socket=/opt/local/var/run/mysql5/mysqld.sock
MySQL
44. 2
•
•
• class AppModel extends Model
class GuestUser extends AppModel
class AdminUser extends AppModel
User
45. class AppModel extends Model {
}
class GuestUser extends AppModel {
public function getDisplayLabel() {
...;
}
} !!
class AdminUser extends AppModel {
public function getDisplayLabel() {
...;
}
public function getAdminRioleType() {
...;
}
}
46. class AppModel extends Model {
public function getDisplayLabel() {
...;
}
}
class GuestUser extends AppModel {
}
class AdminUser extends AppModel {
public function getAdminRioleType() {
...;
}
}
47. class AppModel extends Model {
public function getDisplayLabel() {
return $this->username . “ ”;
}
}
class GuestUser extends AppModel {
}
class AdminUser extends AppModel {
public function getAdminRoleType() {
...;
}
}
class Comment extends AppModel {
// username ←
}
48. UserModel.inc
public function getDisplayLabel() {
return $this->username . “ ”;
}
class GuestUser extends AppModel {
require ‘UserModel.inc’;
}
class AdminUser extends AppModel {
require ‘UserModel.inc’;
public function getAdminRoleType() {
...;
}
}
class Comment extends AppModel {
} ...
require = orz
49. trait UserModel {
public function getDisplayLabel() {
return $this->username . “ ”;
}
}
class GuestUser extends AppModel {
use UserModel;
}
class AdminUser extends AppModel {
use UserModel;
public function getAdminRoleType() {
...;
}
}
class Comment extends AppModel {
}
51. trait PersistentModel {
public function save() {
} =
}
abstract class User { =
public function getDisplayLabel() {
return $this->username . “ ”;
}
}
class GuestUser extends User inplements Persistence {
use PersistentModel;
}
class AdminUser extends User inplements Persistence {
use PersistentModel;
public function getAdminRoleType() {
...;
}
}