东南座驾是一个非商业、免费的游戏。目前只支持安卓平台。
游戏官网:http://www.dnmycar.com:6280/
或者手机扫描二维码再下载:
游戏画面:
Micro Thinking
Discuz 太过于臃肿,简单才是拥有一切,少既是多~
终于成功在项目中安装 Doctrine 了,不过,却发现用 Doctrine 入库的中文都是乱码,虽然用 Doctrine 再次取出恢复正常,但是中感觉缺点什么。
检查数据表、文件都已经是 UTF8了,唯一可能出现问题的就是 Doctrine 连接的问题,找到 DoctrineDBALDriverPDOMySqlDriver 源代码(这是类路径,要搜索一下),发现:
/** * Constructs the MySql PDO DSN. * * @param array $params * * @return string The DSN. */ protected function constructPdoDsn(array $params) { $dsn = 'mysql:'; if (isset($params['host']) && $params['host'] != '') { $dsn .= 'host=' . $params['host'] . ';'; } if (isset($params['port'])) { $dsn .= 'port=' . $params['port'] . ';'; } if (isset($params['dbname'])) { $dsn .= 'dbname=' . $params['dbname'] . ';'; } if (isset($params['unix_socket'])) { $dsn .= 'unix_socket=' . $params['unix_socket'] . ';'; } if (isset($params['charset'])) { $dsn .= 'charset=' . $params['charset'] . ';'; } return $dsn; }
关键是:
$dsn .= 'charset=' . $params['charset'] . ';';
于是,到文件 doctrine.local.php 添加内容为:
<?php return array( 'doctrine' => array( 'connection' => array( 'orm_default' => array( 'driverClass' => 'DoctrineDBALDriverPDOMySqlDriver', 'params' => array( 'host' => 'localhost', 'port' => '', 'user' => 'yourusername', 'password' => 'yourpassword', 'dbname' => 'yourdbname', 'charset' => 'UTF8' ) ) ) ) );
问题解决
最近项目用 zendFramework 2 + Doctrine,composer 安装完毕后使用 vendor/bin/doctrine-module orm:validate-schema
命令出现以下错误:
[DoctrineDBALDBALException] Unknown database type enum requested, DoctrineDBALPlatformsMySqlPlatform may not support i t.
网上找了很多都是解决在 Symfony 下的,没有发现在 zf2下如何解决,红杏(fanqiang)后终于找到一老外找到了解决办法:
在 Application 模块(默认模块)的 Module.php 文件添加以下内容:
class Module { public function onBootstrap(MvcEvent $e) { ...... $em = $e->getApplication()->getServiceManager()->get('DoctrineORMEntityManager'); $dbPlatform = $em->getConnection()->getDatabasePlatform(); $dbPlatform->registerDoctrineTypeMapping('enum', 'string'); ..... } }
原帖地址:http://foobar.lu/wp/2013/01/24/getting-enum-datatype-to-work-with-doctrine-2-in-zend-framework-2/
Html5 CSS3 手册
在unity3d中返回android的原生activity,按照网上的许多教程,互相调用方法基本都没什么问题了,但是在返回android的原生activity的时候,整个程序都会关闭,最后在 manifest 配置文件中加入线程名解决。先罗列代码:
第一步在unity3d 的c#中回调外壳activity的方法:
public void onBackClick(){ AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity"); jo.Call("back","返回android"); }
第二部在外壳activiti中处理(我是新建了一个继承UnityPlayerNativeActivity的类):
public class WeivaUPNActivity extends UnityPlayerNativeActivity { public void back(String arg){ Intent intent = new Intent(); intent.setClass(WeivaUPNActivity.this, LoginOkActivity.class); startActivity(intent); WeivaUPNActivity.this.finish(); } }
视乎看起来没什么问题,但是UnityPlayer 被finish()后会把整个程序给exit,导致无法返回 LoginOkActivity 。如果不对UnityPlayer进行finish,可以返回LoginOkActivity,但是这程序无法退出,因为在退出的时候又会再次打开UnityPlayer。
谷歌了很多帖子,视乎很复杂,也考虑过回调时不finishi,而是把WeivaUPNActivity实例静态化后,在退出时在静态退出,但是感觉很麻烦。最后在一片老外的帖子发现一条线索,可以在manifest配置文件中设置不同的进程名,从而避免UnityPlayer finish时关闭整个程序:
<activity android:label="@string/app_name" android:screenOrientation="fullSensor" android:launchMode="singleTask" android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale" android:name="com.weiva.WeivaUPNActivity"<font color="#ff0000"> android:process=":Unity3D"</font>> <meta-data android:name="unityplayer.UnityActivity" android:value="true" /> <meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="false" /> </activity>
原帖地址:http://answers.unity3d.com/questions/587979/how-do-i-stop-munityplayerquit-closing-the-entire.html
需求:定制自己的日志系统,本例假定指定存储到Mysql数据库当中。
通常的web我们可以 echo,或者IDE的debuger调试程序,但是有些特殊情况,例如php与android、unity3d等前端通讯时,传统方式并不方便,所以,需要把日志输出到其他地方便于查看。
* zf2中可以通过指定不同的 Zend/Log/Writer 来使用不同的日志记录方式。
下面开始动手了
为了便于在系统中重复使用,我将Logger放到 App 的 Service 中,以后只要在需要的时候,从 Service 中取出就可以用,如果完全没使用,也不会对速度有影响。
在文件 module/Application/Module.php 中:
头部引用包:
use ZendLogLogger; use ZendLogWriterDb as WriterDb;
在 Module 类中,加入自定义 Service:
public function getServiceConfig(){ return array( 'factories'=>array( 'WLogger' => function($sm){ $dbAdapter = $sm->get ( 'ZendDbAdapterAdapter' ); //需要指定你自己的数据库适配器 //对接数据表字段 $mapping = array( 'timestamp' => 'time', 'priority' => 'type', 'message' => 'message' ); $writer = new WriterDb($dbAdapter, 'log_table', $mapping); // log_table 是你自己的日志数据表 //$writer = new ZendLogWriterDb($dbAdapter, 'log_table', $mapping); //这样会报错 $logger = new Logger(); $logger->addWriter($writer); return $logger; } ) ); }
添加日志表到你的数据库中:
-- -- 表的结构 `log_table` -- CREATE TABLE IF NOT EXISTS `log_table` ( `id` int(10) NOT NULL AUTO_INCREMENT, `time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `type` varchar(255) DEFAULT NULL, `message` text, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='日志库' AUTO_INCREMENT=1 ;
如何使用?:
$logger = $this->getServiceLocator()->get('WLogger'); $logger->info('记录一条日志');
今天遇上一个怪异的问题,本来想通过JQuery改变图片地址的,但是老是取得Dom处理后的绝对路径地址,不利于处理,研究了半天,终于知道怎么处理了:
$("img").each(function(i){ alert("1:" + $(this).attr("src")); //这种方式可以取得 html 中的 src 属性 alert("2:" + this.src); //这种方式取得的是经过 Dom 补完的绝对路径 });
可恶的Dom