コード例 #1
0
ファイル: YMysql.php プロジェクト: sm115/SYFramework
 /**
  * 连接到MySQL
  * @access protected
  */
 protected function connect()
 {
     $dsn = 'mysql:host=' . $this->connect_info['host'] . ';port=' . $this->connect_info['port'] . ';dbname=' . $this->connect_info['name'] . ';charset=' . strtolower(str_replace('-', '', Sy::$app['charset']));
     try {
         $this->link = new PDO($dsn, $this->connect_info['user'], $this->connect_info['password']);
         $this->link->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE);
         $this->result = array();
     } catch (PDOException $e) {
         throw new SYDBException(YHtml::encode($e->getMessage), 2, $dsn);
     }
 }
コード例 #2
0
ファイル: YSqlite.php プロジェクト: sm115/SYFramework
 /**
  * 连接到MySQL
  * @access protected
  */
 protected function connect()
 {
     //对老版本的支持
     if ($this->connect_info['version'] === 'sqlite3') {
         $dsn = 'sqlite:';
     } else {
         $dsn = 'sqlite2:';
     }
     $path = str_replace('@app/', Sy::$appDir, $this->connect_info['path']);
     $dsn .= $path;
     try {
         $this->link = new PDO($dsn);
         $this->result = array();
     } catch (PDOException $e) {
         throw new SYDBException(YHtml::encode($e->getMessage), $this->dbtype, $dsn);
     }
 }
コード例 #3
0
ファイル: YPdo.php プロジェクト: sm115/SYFramework
 /**
  * 执行查询
  * @access public
  * @param string $key
  * @param string $sql SQL语句
  * @param array $data 参数
  */
 public function query($key, $sql, $data = NULL)
 {
     $prepare_sql = $this->setQuery($sql);
     $st = $this->link->prepare($prepare_sql);
     if ($st === FALSE) {
         throw new SYDBException('Failed to prepare SQL', $this->dbtype, $sql);
     }
     if (is_array($data)) {
         foreach ($data as $k => $v) {
             $st->bindValue($k + 1, $v);
         }
     }
     try {
         $r = $st->execute();
         if ($r === FALSE) {
             throw new SYDBException(YHtml::encode($st->errorInfo()), $this->dbtype, $sql);
         }
     } catch (PDOException $e) {
         throw new SYDBException(YHtml::encode($e->getMessage()), $this->dbtype, $sql);
     }
     $this->result[$key] = $st;
 }
コード例 #4
0
ファイル: HelloWorld.php プロジェクト: sm115/SYFramework
		'prefix' => 'pre_'
	]
];</pre>
				</ol>
			</div>
		</div>
		<div class="panel panel-default">
			<div class="panel-heading">
				<h3 class="panel-title">Step2.编写Controller和模板</h3>
			</div>
			<div class="panel-body">
				<ol>
					<li>在<code>myapp</code>下建立两个目录:<code>view、controllers</code></li>
					<li>在<code>controllers</code>下新建一个文件,取名为<code>home.php</code>,<strong>并加入到<code>config.php</code>的controller列表中去</strong>,修改文件,写入以下内容:</li>
					<pre><?php 
echo YHtml::encode('<?php');
?>

use \sy\base\Controller;
use \sy\lib\YHtml;
//注意:Controller类命名规则为:大写字母C+首字母大写的Controller名
//例如本例中,Controller名为home,则Controller类名为CHome
class CHome extends Controller {
	public function __construct() {
	}
	//供公开调用的方法必须以action开头,action后连接<strong>首字母大写</strong>的方法名
	public function actionHello() {
		//必须:发送Content-type的header,避免乱码和其他情况
		Sy::setMimeType('html');
		//加载模板,home/hello对应的是view/home/hello.php,以此类推
		Sy::view('home/hello');
コード例 #5
0
ファイル: Base.php プロジェクト: sm115/SYFramework
<?php

use sy\lib\YHtml;
?>
<!DOCTYPE html>
<head>
	<title>Hello</title>
	<?php 
echo YHtml::meta();
?>
	<?php 
echo YHtml::css('@root/public/css/bootstrap.min.css');
?>
</head>
<body>
	<div class="container">
		<h1>基本构架</h1>
		<div class="panel panel-default">
			<div class="panel-heading">
				<h3 class="panel-title">框架目录和文件</h3>
			</div>
			<div class="panel-body">
				<ul>
					<li>index.php 入口文件,在其中设置应用设置所在目录即可</li>
					<li>framework 框架目录<ul>
						<li>sy.php 入口文件</li>
						<li>BaseSY.php 基本类</li>
						<li>base<ul>
							<li>Controller.php Controller基本类,应用的Controller都继承此类</li>
							<li>SYException.php 异常类</li>
							<li>SYDBException.php 数据库异常类</li>
コード例 #6
0
ファイル: YMysqli.php プロジェクト: sm115/SYFramework
 /**
  * 执行查询
  * @access public
  * @param string $key
  * @param string $sql SQL语句
  * @param array $data 参数
  */
 public function query($key, $sql, $data = NULL)
 {
     $sql = $this->setQuery($sql);
     if (is_array($data)) {
         foreach ($data as $v) {
             $v = str_replace("'", "\\'", $v);
             $sql = str_replace('?', "'{$v}'", $sql, 1);
         }
     }
     $r = $this->link->query($sql);
     //执行失败
     if ($r !== TRUE) {
         throw new SYDBException(YHtml::encode($this->link->error), $this->dbtype, YHtml::encode($sql));
     }
     $this->result[$key] = $r;
 }
コード例 #7
0
ファイル: option.php プロジェクト: sm115/SYFramework
 /**
  * Set
  * @access public
  */
 public function set($a)
 {
     $this->val = $a;
     return 'Set to ' . YHtml::encode($a);
 }
コード例 #8
0
ファイル: test.php プロジェクト: sm115/SYFramework
 public function foo($str)
 {
     return YHtml::encode(YHtml::css($str));
 }