quberik / application-for-domotehnika
Domotehnika公司的测试应用程序
dev-master / 1.1.x-dev
2014-11-18 15:25 UTC
Requires
- php: >=5.3.3
- doctrine/doctrine-bundle: ~1.2
- doctrine/orm: ~2.2,>=2.2.3
- friendsofsymfony/elastica-bundle: 3.1.*@dev
- friendsofsymfony/rest-bundle: 1.5.*@dev
- friendsofsymfony/user-bundle: 2.0.*@dev
- incenteev/composer-parameter-handler: ~2.0
- jms/serializer-bundle: 0.13.*@dev
- sensio/distribution-bundle: ~3.0
- sensio/framework-extra-bundle: ~3.0
- symfony/assetic-bundle: ~2.3
- symfony/monolog-bundle: ~2.4
- symfony/swiftmailer-bundle: ~2.3
- symfony/symfony: 2.5.*
- twig/extensions: ~1.0
Requires (Dev)
- doctrine/doctrine-fixtures-bundle: 2.2.*@dev
- fzaninotto/faker: 1.5.*@dev
- sensio/generator-bundle: ~2.3
This package is not auto-updated.
Last update: 2024-09-24 08:58:11 UTC
README
实现了应用程序 - 通过Web访问用户数据的API。用户数据存储在数据库中。每个用户都有昵称、登录名和电子邮件。根据客户端应用程序的选择,选择返回数据类型(json或xml)。
安装应用程序
下载并安装 Composer
通过Composer下载应用程序
composer.phar create-project quberik/application-for-domotehnika -s dev
创建用户和数据库密码: user_domotehnika
和 Amyk9As449MhnO7
主机: localhost
(127.0.0.1
)
创建数据库
php app/console doctrine:database:create
打开控制台。切换到项目目录并创建数据库中的表
php app/console doctrine:schema:update --force
加载固定值
php app/console doctrine:fixtures:load
本地安装ElasticSearch服务器。端口 9200
启动ElasticSearch服务器
从数据库创建Elastic索引
app/console fos:elastica:populate
设置app/cache和app/logs目录的权限为777
以及所有嵌套文件和目录
应用程序功能
获取数据库中的用户列表,GET请求
http://your_site.ru/api/user.json
根据条件(昵称、登录名、电子邮件)获取用户列表,GET请求
http://your_site.ru/api/user.json?search=@hotmail.com
根据id获取用户,GET请求
http://your_site.ru/api/user/5.json
更新用户(更改昵称、电子邮件),POST请求
http://your_site.ru/api/user/5.json
可选
- 切换环境(开发、生产)
http://your-site.ru/
- prod
http://your-site.ru/app_dev.php/
- dev -
自定义404和500错误页面 - 不太清楚这里的意图。目前,如果客户端向服务器发出请求并期望json,则会收到包含404或500错误的json响应。如果客户端请求xml,则错误响应也会以xml格式返回。
- API仅对授权客户端应用程序开放。登录名和密码:
demo
和demo
附加任务
5百万访问量的环境
- Linux CentOs,版本 > 6
- PHP 5.3.3或更高版本
- MySql 5.5.33或更高版本
- Nginx 1.5.3
- 在nginx.conf文件中关闭Access log
access_log off;
- 安装内部PHP缓存 - APC
- 由于将使用InnoDB作为mysql引擎,因此将缓冲区大小设置为服务器总可用内存的75%(在my.cnf文件中将key_buffer相应减小)。
- 在此文件中将
innodb_flush_log_at_trx_commit
设置为0。对于大量数据,这将显著提高写入速度(不需要在每次操作后将写入缓冲区刷新到磁盘)。 - 在此文件中启用内部MySQL缓存:
query_cache_size = 32M
- 将Nginx的工作进程数量设置为内核数量
- 将ElasticSearch服务器迁移到单独的服务器或多个服务器
- 将MySQL数据库迁移到其他服务器。可以配置MySQL复制到多个服务器。
- 启用Doctrine缓存和文件缓存
- 垂直和水平扩展
- 使用zabbix监视系统负载和节点工作
- 最后,使用多个服务器进行响应,而不是一个
演示
http://ussurka.ru/api/user.json http://ussurka.ru/api/user.json?search=@gmail.com http://ussurka.ru/api/user/2.json
登录: demo
密码: demo