当前位置: 首页 > news >正文

无锡网站优化推广方案g时代网站建设

无锡网站优化推广方案,g时代网站建设,网页设计代码浮动效果,手机站和网站有区别吗前言这几天想基于 .NET Core 搞一个自己的博客网站#xff0c;于是在网上搜刮各种博客引擎#xff0c;找到了这些候选#xff1a;Blogifier、Miniblog 以及 edi 写的 Moonglade。Blogifier#xff1a;这是前端是个 Angular SPA 应用#xff0c;不利于 SEO#xff0c;同时… 前言这几天想基于 .NET Core 搞一个自己的博客网站于是在网上搜刮各种博客引擎找到了这些候选Blogifier、Miniblog 以及 edi 写的 Moonglade。Blogifier这是前端是个 Angular SPA 应用不利于 SEO同时首屏加载速度慢因此排除。Miniblog顾名思义 Mini可以完美承载内容但是主题实在是过于简单没有可自定义性因此排除。Moonglade总体感觉不错界面设计得也很好功能全面然而需要 SQL Server 作为数据库然而 SQL Server 虽然有 Linux 版本但受限于主机配置和预算因此也被排除。难道就没有适合我需求的博客引擎了吗答案当然是有。众所周知 PHP 是世界上最好的语言滑稽还是众所周知有一个叫做 WordPress 的博客引擎生态非常庞大而且是使用 PHP 构建的。可是 PHP 和 .NET 又有什么关系呢PeachPiePeachPie 是一个完全构建于 .NET Standard 之上的一套完整的 PHP SDK Runtime包含编译器和运行时等等兼容 PHP 5.4-7.4当然部分功能仍在开发中。官网https://www.peachpie.io那么 PeachPie 有什么优点呢开源https://github.com/peachpiecompiler/peachpie跨平台因为 PeachPie 完全构建于 .NET 之上因此也就跟着跨平台了Windows、MacOS、Linux 等等从架构上跨 x86、x86_64、ARM、ARM64未来甚至还会有 MIPS、MIPS64、Risc-V 等等......纯托管代码借助 VS 强大的调试器和 IDE 体验从开发、调试到测试、Profile 一条龙非常爽编译PHP 是没有编译之说的这门动态类型语言和 Python 面临一样的问题几乎无法在编译时发现代码中的错误即便借助 linter 诊断出了语法错误也很难诊断出类型的错误。而 PeachPie 则有完善的编译器套件将 PHP 代码完整的编译为 .NET Standard 程序集意味着在编译期就做好了语法和类型检查保证了运行时不会因为代码问题导致程序崩溃同时应用分发的时候也不需要源代码确保了源码安全与 .NET 互操作PeachPie 在保留了 PHP 原本的生态基础上做到了 PHP 和 .NET 的互操作一个 PeachPie 项目不但可以使用 PHP 原有生态中的包和插件还能享受 .NET 的生态快乐超级加倍运行在 .NET 上CLR/CoreCLR 自带久经考验的 JIT 和 GC因此通过 PeachPie 编译的程序集运行在 CLR/CoreCLR 之上则无需做任何的代码改动即可享受到这些东西在 php-bench 中借助 CoreCLR 平台的 JIT函数调用性能拉开了原来 PHP 几个数量级.NET Foundation 项目背后有 .NET Foundation 支持瓦利亚高品质有保证可是有人就要问了为什么我不直接用 PHP 而是选用 PeachPie 曲线救国呢因为我乐意雨女无瓜逃开始使用#本文开发环境采用 Visual Studio Code需要安装 PeachPie 插件当然你也可以用 Visual Studio 等其他开发工具。安装 PeachPie 最新的项目模板Copydotnet new -i Peachpie.Templates::* 然后就会出现三个新的项目模板Console Application、Class library 和 ASP.NET Core Empty。我们这次整个 Console Application 看看。Copydotnet new console -lang PHP 然后随便写点代码Copy?phpfunction main() {$students array(array(first_name Joe, score 83, last_name Smith),array(first_name Frank, score 92, last_name Barbson),array(first_name Benji, score 90, last_name Warner));foreach ($students as $value) {echo $value[first_name], , $value[last_name], s score is , $value[score], \n;} }main(); 用配置 .NET Core 项目的方式写好 Visual Studio Code 需要的 tasks.json 和 launch.json随便下点断点然后编译 F5 运行编译输出请无视掉我的霓虹语电脑环境Copy.NET Core 向け Microsoft (R) Build Engine バージョン 16.7.0-preview-20220-0180e487bff Copyright (C) Microsoft Corporation.All rights reserved.復元対象のプロジェクトを決定しています...復元対象のすべてのプロジェクトは最新です。プレビュー版の .NET Core を使用しています。https://aka.ms/dotnet-core-preview をご覧くださいPeachPie PHP Compiler version 0.9.981565af85b9aafc42fe1af2f30ccd73ff093a2fad7PeachPieConsole - C:\Users\hez20\source\repos\PeachPieConsole\bin\Debug\netcoreapp3.1\PeachPieConsole.dllビルドに成功しました。0 個の警告0 エラー経過時間 00:00:12.98 Voila!输出CopyJoe Smiths score is 83 Frank Barbsons score is 92 Benji Warners score is 90 如果去掉打错一个变量 $value 变成 $vuale 会怎么样呢Copy?phpfunction main() {$students array(array(first_name Joe, score 83, last_name Smith),array(first_name Frank, score 92, last_name Barbson),array(first_name Benji, score 90, last_name Warner));foreach ($students as $value) {echo $vuale[first_name], , $value[last_name], s score is , $value[score], \n;} }main(); 编译输出Copy.NET Core 向け Microsoft (R) Build Engine バージョン 16.7.0-preview-20220-0180e487bff Copyright (C) Microsoft Corporation.All rights reserved.復元対象のプロジェクトを決定しています...復元対象のすべてのプロジェクトは最新です。プレビュー版の .NET Core を使用しています。https://aka.ms/dotnet-core-preview をご覧くださいPeachPie PHP Compiler version 0.9.981565af85b9aafc42fe1af2f30ccd73ff093a2fad7 program.php(13,14): warning PHP5007: Undefined variable: $vuale [C:\Users\hez20\source\repos\PeachPieConsole\PeachPieConsole.msbuildproj]PeachPieConsole - C:\Users\hez20\source\repos\PeachPieConsole\bin\Debug\netcoreapp3.1\PeachPieConsole.dllビルドに成功しました。program.php(13,14): warning PHP5007: Undefined variable: $vuale [C:\Users\hez20\source\repos\PeachPieConsole\PeachPieConsole.msbuildproj]1 個の警告0 エラー経過時間 00:00:09.51 由于上述代码在 PHP 中是合法代码因此为了保持兼容性PeachPie 不会报错而是给了警告。但如果我们少一个分号呢 ?phpfunction main() {$students array(array(first_name Joe, score 83, last_name Smith),array(first_name Frank, score 92, last_name Barbson),array(first_name Benji, score 90, last_name Warner))foreach ($students as $value) {echo $value[first_name], , $value[last_name], s score is , $value[score], \n;} }main(); 编译输出Copy.NET Core 向け Microsoft (R) Build Engine バージョン 16.7.0-preview-20220-0180e487bff Copyright (C) Microsoft Corporation.All rights reserved.復元対象のプロジェクトを決定しています...復元対象のすべてのプロジェクトは最新です。プレビュー版の .NET Core を使用しています。https://aka.ms/dotnet-core-preview をご覧くださいPeachPie PHP Compiler version 0.9.981565af85b9aafc42fe1af2f30ccd73ff093a2fad7 program.php(12,5): error PHP2014: Syntax error: unexpected token foreach [C:\Users\hez20\source\repos\PeachPieConsole\PeachPieConsole.msbuildproj]ビルドに失敗しました。program.php(12,5): error PHP2014: Syntax error: unexpected token foreach [C:\Users\hez20\source\repos\PeachPieConsole\PeachPieConsole.msbuildproj]0 個の警告1 エラー経過時間 00:00:01.77 这次就会直接报错了。由此可见使用 PeachPie 能够无需第三方工具辅助直接在编译时就验证代码正确性对项目的健壮性有很大帮助。PHP 与 .NET 互操作#我们试试互操作在 PHP 里面创建一个 .NET 中的 HashSetTValue ?phpfunction main() {$list new System\Collections\Generic\HashSetstring;$list-Add(test);$list-Add(hello);$list-Add(hello);$list-Add(lol);foreach ($list as $key $value) {echo $key, : , $value, \n;} }main(); 输出Copy0: test 1: hello 2: lol 完美另外鉴于 PHP 代码最后都会被编译成 .NET Standard 程序集因此反过来当然也没问题就不做介绍了。一些坑#PeachPie 已经发展了好几年的时间了尽管大多数 PHP 代码都能正常运行但是标准库仍存在一些兼容性问题具体可以去这里跟踪https://docs.peachpie.io/compatibility-status 。由于目前还在补全兼容性问题所以很多优化工作比如数组的优化都没有做性能方面还有很大的提升空间。不过官方目前开发进度十分快因此短时间内就能看到大量的新库函数被实现到目前已经是 0.9.8001.0 正式版也快要发布了很快就能正式投入生产使用啦。Blog 搭建#回到前面的主题有了 PeachPie我就能把 WordPress 放到 .NET Core 上面跑啦。当然直接下载下来 WordPress 的源代码编译跑到 ASP.NET Core 上面时会出现一些问题比如资源加载全部 404这是因为 PeachPie 在编译 PHP 代码时默认不会将非 .php 的文件包含到编译过程中我们需要修改 .msbuildproj 调整项目属性将资源文件包含在编译过程中并作为 Content 引入。另外由于 WordPress 首次配置会现场生成一个 config.php 文件但是由于该文件是编译后的程序集在运行时生成的未参与编译过程因此运行时是找不到这个类的除非重新编译一遍。因此我们想采用更清真的方式直接在 appsettings.json 里面写入配置然后运行时读入代替原来的 config.php。总之需要经过一系列操作并且编写少量代码。不过PeachPie 已经帮我们做好了这一切iolevel 提供了一个即插即用的 WordPress 包 PeachPied.WordPress.AspNetCorehttps://github.com/iolevel/wpdotnet-sdk 可直接作为 ASP.NET Core 中间件使用非常方便。那么事情就简单了 dotnet new web dotnet add package PeachPied.WordPress.AspNetCore --version 1.0.0-* 然后编写少量服务端代码配置一下 https 跳转、响应压缩和静态文件什么的再加入 WordPress 中间件Startup.cs using System.Linq; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.ResponseCompression; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting;namespace KeBlogs {public class Startup{// This method gets called by the runtime. Use this method to add services to the container.// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID398940public void ConfigureServices(IServiceCollection services){services.AddResponseCompression(options {options.Providers.AddBrotliCompressionProvider();options.Providers.AddGzipCompressionProvider();options.MimeTypes ResponseCompressionDefaults.MimeTypes.Concat(new[] {image/svgxml,image/png,font/woff,font/woff2,font/ttf,font/eof,image/x-icon,application/json,application/octet-stream });});}// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.public void Configure(IApplicationBuilder app, IWebHostEnvironment env){app.UseHttpsRedirection();app.UseResponseCompression();if (env.IsDevelopment()){app.UseDeveloperExceptionPage();}app.UseDefaultFiles();app.UseStaticFiles();app.UseWordPress();}} } 代码部分搞定当然上述代码你也可以用 PHP 来写。然后在 appsettings.json 写入自己的配置比如SALT 部分可以没有 {WordPress: {dbhost: localhost,dbpassword: password,dbuser: root,dbname: wordpress,dbTablePrefix: wp_,SALT: {AUTH_KEY: r(EoMbKEvlg){!T42fh-e~IGj-4q}g8HHB9hjbiC0J*ySU1Y*3z[3c}F;6TA5,AUTH_SALT: q0#AzvJ*[4~Bexa9*M(sC_#pDuGQBdjL1}j*RilSe0ku]P~KuTir[7PxjE:4)_zR,LOGGED_IN_KEY: !AAienFSridCUzF(v}m#}_;t%Rclg;mOPKwe;w7dN0M{d,]?8VTRW_UG)tSswa,LOGGED_IN_SALT: C(4(8WPMeRu_h?g7!ddI*P:SYU3C%g)92oV}-y5tE0r?DHWl!fjPOpbjx2YJ,NONCE_KEY: Z[e37y)m.CHa:OSldh#RTnIZxKYGwu!/hd:vK#^{_Ec7e{KNb(G.8ch/MkH(d,NONCE_SALT: ;v7Wv/BV)Pz{W,FaAKC0buH*5U4:g]qn~;b94x]f8lm6!yyYSbW5*2y*kRXXEF5,SECURE_AUTH_KEY: pc}_Pv52,mj9l#llSkLVQib.Zm!;9FRzg:{(G]tM8}[}]pPDwB4k{xV!e)9lmR,SECURE_AUTH_SALT: #n]o^w/%-~MVzf{AUuxUAwF[n03r{kr^r1V?wqQ?Vjt}!0HSkCB-):u-ra1%tB},constants: {}} } 然后发布我们的 WordPressCopydotnet publish -c Release 最后打包 bin/Release/netcoreapp3.1/publish 上传到服务器上面搭建好数据库然后运行即可。完结撒花#进入管理面板大多数主题、插件都能正常工作安装点主题配置配置插件和 SMTP就全部搞定啦。内存占用 195 MB运行在 .NET Core 3.1.3 上非常清真至此我的 Blog 搭建完成欢迎大家访问https://hez2010.com 。评论和注册什么的也开放了欢迎大家常光临~后续我也会不断在上面更新文章当然这个 Blog 上面的内容也就不仅限于编程啦敬请期待~从此 PHP 也是 .NET 上的一门语言了完结撒花~
http://www.zqtcl.cn/news/694871/

相关文章:

  • 中国工程建设交易信息网站仿蘑菇街wordpress主题
  • 网站需要怎么做做普通网站公司吗
  • 网站收录平台方法网站建设是不是都需要交费
  • 上海 政务网站建设情况营销模式有哪些 新型
  • 国内做免费视频网站有哪些苏州娱乐场所最新消息
  • 福田建设网站宿迁网站建设案例
  • 建立企业网站的目的和意义人力资源外包收费标准
  • 网站开发前后端分离湘潭seo磐石网络
  • 上海做网站找谁京东网站建设分析
  • 叶榭做网站青岛做网站建设价格
  • 有什么可以在线做奥数题的网站中国建设网官网下载
  • 网站加载特效代码网站建设5000费用
  • 网站切图谁来完成wordpress 谷歌登陆
  • 租房网站建设网站怎么黑
  • 文成做网站搜索引擎优化工具深圳
  • 网站源码下载平台小程序云开发费用
  • 网站建设的数字化和互联网化网站作品
  • 南京专业网站制作公司有哪些亚马逊网网站建设规划报告
  • app免费制作网站模板网站打开速度进行检测
  • 进下加强新闻宣传网站建设wordpress做论坛网站
  • 朝阳网站搭建公司淘宝导购网站备案
  • 京润珍珠企业网站优化洛阳做网站
  • 嘉定网站开发中山市区做网站公司
  • 可信赖的武进网站建设上海中小企业服务中心
  • 应用网站品牌官方网站
  • 网站建设综合训练的实验目的漳州网站建设网站运营
  • 网页设计免费网站推荐我的世界做壁纸的网站
  • 黄岩做网站的公司网站栏目相关内容在哪采集啊
  • 邯郸市城市建设局网站快速建站平台
  • 华为官方手表网站wordpress文章图片链接