标签: loader

php自动加载器是如何工作的

php类Autoloader是否打开文件并检查类名?我一直在研究它是如何实际实现的.有一件事我知道它的递归?如果我错了请告诉我

如上所述:autoloader简介视图 PHP Autoloader的工作原理

PHP Autoloader在定义的目录中递归搜索类,特征和接口定义.在没有任何进一步配置的情况下,需求文件所在的目录将用作默认类路径.

文件名不需要遵守任何约定.搜索所有文件的类定义.与类名相似或以.php或.inc结尾的文件是首选.如果支持,PHP Tokenizer将用于可靠的类定义发现.

php loader autoloader

12
推荐指数
1
解决办法
6163
查看次数

加载器和C运行时初始化的角色之间的差异

我正在阅读此链接中有关C运行时初始化的角色:http://www.embecosm.com/appnotes/ean9/html/ch05s02.html

它表示运行时初始化执行诸如设置堆栈之类的任务,并且在更详细的页面中,它还说它用零初始化bss段.在其他一些地方,我还读到它初始化数据和其他一些段.

这在我的脑海中产生了一个疑问,那就是装载机的功能呢?因为其中一些任务也是装载机的责任.

所以,我的问题:

  1. 运行时初始化或c运行时实际上做了什么?
  2. 装载机实际上做了什么?

编辑

好的,如果该链接具体描述了嵌入式系统的运行时初始化的作用,那么它对普通系统有什么作用.据我所知,运行时初始化将只调用main,而没有其他工作留给它.

c runtime loader

12
推荐指数
1
解决办法
999
查看次数

有时在调用initLoader后不要进行onCreateLoader回调

我有一个活动,它在创建时调用initLoader,以便加载活动将显示的数据.通常,这很好.我设置断点以查看一切发生的顺序.首先我调用initLoader,然后我得到OnCreateLoader回调,然后是OnLoadFinished回调,然后一切都很棒.

但是,我注意到如果我在Android上更改了方向,我没有获得OnCreateLoader回调或OnLoadFinished回调,导致页面上没有显示数据.我仍然在initLoader调用上获得断点,所以我知道这种情况正在发生,但我没有收到错误,我找不到任何文档解释为什么在调用initLoader后我不会得到回调.

有趣的是,如果我回到原来的方向,我确实得到了回调.

所以,总结一下:

我以纵向开始活动

  • 我叫initLoader
  • 我得到了onCreateLoader和onLoadFinished回调

然后我转向风景

  • 我叫initLoader
  • 没有onCreateLoader或onLoadFinished回调

我改回肖像

  • 我叫initLoader
  • 我得到了onCreateLoader和onLoadFinished回调

同样,如果我以横向模式启动活动,我会收到回调.然后,如果我切换到肖像,我不会.然后,如果我切换回横向,我会再次收到回调.

有谁知道发生了什么事?

android callback loader orientation

11
推荐指数
2
解决办法
7509
查看次数

CorFlags.exe/32BIT +如何工作?

我想我的问题是关于CLR Loader.我想了解CorFlags.exe /32BIT+功能背后的机制.

我们知道当一个人开始使用在64位Windows上设置的Any CPU标志编译的程序集时,它将以64位进程启动.如果CorFlags /32BIT+在该程序集上运行,它将以32位进程启动.我认为这是一个引人入胜的特征.

我有很多问题:

  1. 它是如何实现的?
  2. 操作系统加载器是否涉及?
  3. 是否可以构建一个自定义应用程序(我想是一个非托管的应用程序),可以根据需要加载32位或64位CLR?

是否有文章,书籍,博客等解释了此功能的内部工作原理?

clr loader corflags

11
推荐指数
1
解决办法
6754
查看次数

Loaders和onLoaderReset Android

我在我的应用程序中实现了一个Loader来查询数据库中的数据.我通过实现LoaderCallbacks<Cursor>监听器来监听发生的变化.我遇到的问题是当onLoaderReset(Loader<Cursor> loader)我的数据发生变化时使用该方法,并且我想要使与加载器相关的任何数据无效并释放.在所有示例中,在此方法中有以下调用:

mAdapter.swapCursor(null);

但问题是我不使用适配器中光标的数据,我在我的应用程序中以其他方式使用它.

(onLoadFinished(Loader<Cursor> loader, Cursor data)例如,直接从返回的游标中)

        @Override
        public void onLoadFinished(Loader<Cursor> loader, Cursor data) {

            if (data.moveToFirst()) {
                TOTAL_CARDS = data.getCount();
                mView.createCards(TOTAL_CARDS);
            } else {
                TOTAL_CARDS = 0;
                mView.createCards(TOTAL_CARDS);
            }


        }
Run Code Online (Sandbox Code Playgroud)

这里要做的相应事情是什么,与...类似mAdapter.swapCursor.我对装载机没有多少经验,事实上我刚开始与他们合作,所以如果有人有解决方案,我会很感激.谢谢!

编辑:现在,我传递null到加载器,它的工作原理如下:

@Override
public void onLoaderReset(Loader<Cursor> loader) {
        loader = null;
}

};
Run Code Online (Sandbox Code Playgroud)

但这是正确的解决方案吗?

android loader android-loadermanager

11
推荐指数
1
解决办法
1万
查看次数

如何使用webpack在React中加载本地视频?

我似乎无法弄清楚如何在本地文件的反应应用程序中呈现html5视频.从字面上看,我能够让这个工作的唯一方法就是这样:

<video src="http://www.w3schools.com/html/movie.mp4" controls />
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的

1.直接包括路径

<video src={require('path/to/file.mp4')} controls />
Run Code Online (Sandbox Code Playgroud)

返回错误

Module parse failed: /path/to/file.mp4 Line 1: Unexpected token ILLEGAL
You may need an appropriate loader to handle this file type.
Run Code Online (Sandbox Code Playgroud)

2.将这些加载器一次添加到webpack配置中

{
  test: /\.(mp4)$/,
  loader: 'file'
  // loader: 'url-loader'
  // loader: 'url-loader?limit=100000'
  // loader: 'file-loader'
  // loader: 'file-loader?name=videos/[name].[ext]'
},
Run Code Online (Sandbox Code Playgroud)

这会在浏览器中吐出以下错误

GET http://localhost:3000/530c2bf99dad0f857d46940b62b84946.mp4 404 (Not Found)
Run Code Online (Sandbox Code Playgroud)

3.我尝试添加一个直接链接到文件

<video src={require('http://localhost:3000/path/to/file.mp4')} controls />
Run Code Online (Sandbox Code Playgroud)

但仍然是错误:

Module not found: Error: Cannot resolve module 'http://localhost:3000/path/to/file.mp4' in path/to/file.mp4
Run Code Online (Sandbox Code Playgroud)

4.我尝试添加了MP4扩展在我的WebPack配置这样的人做

{ …
Run Code Online (Sandbox Code Playgroud)

video loader reactjs webpack es6-module-loader

11
推荐指数
1
解决办法
1万
查看次数

为什么在设备轮换后调用CursorLoader onLoaderReset()?

我有一个主要的活动A,它使用CursorLoader来查询数据库.这是我在活动onCreate()方法中创建的:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ...
    getSupportLoaderManager().initLoader(LOADER_MEASUREMENTS, null, A.this);
}
Run Code Online (Sandbox Code Playgroud)

Activity A还实现了CursorLoader的3个回调:

public Loader<Cursor> onCreateLoader(int loaderId, Bundle args)
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor)
public void onLoaderReset(Loader<Cursor> loader)
Run Code Online (Sandbox Code Playgroud)

当我旋转设备时,我看到正确的生命周期方法运行:

A.onPause()
A.onStop()
A.onDestroy()          
A.onCreate()      <-- re-connect to existing loader, onCreateLoader() not called
A.onLoadFinished()
A.onStart()
A.onResume()
Run Code Online (Sandbox Code Playgroud)

然后我打开一个子活动B并旋转我的设备.当我完成B并返回活动AI时,请看以下运行:

B.onPause()
       A.onLoaderReset()      <- why does this run?
       A.onDestroy()          
       A.onCreate()
       A.onCreateLoader()     <- now runs as loader is null
       A.onStart()
       ...
Run Code Online (Sandbox Code Playgroud)

为什么我的装载机重置,因为我打开了活动B并且设备旋转了?只是添加活动B与DB或CursorLoader无关.

android loader reset

11
推荐指数
1
解决办法
1395
查看次数

ngx-translate .instant返回键而不是值

我试图通过使用translate.instant(参数)创建一个接受字符串键并返回翻译后的字符串值的方法.问题是它返回键(参数).通常,如果找不到翻译,则返回此选项.我认为问题是在加载器加载转换之前调用方法.

我的app.module.ts导入:

    TranslateModule.forRoot({
  loader: {
    provide: TranslateLoader,
    useFactory: (createTranslateLoader),
    deps: [HttpClient]
  }
})
Run Code Online (Sandbox Code Playgroud)

createTranslateLoader函数:

    export function createTranslateLoader(http: HttpClient) {
  return new TranslateHttpLoader(http, './assets/i18n/', '.json');
}
Run Code Online (Sandbox Code Playgroud)

在我的app.component中:

constructor(public translate: TranslateService){
   translate.setDefaultLang('en');
   translate.use('en');
}
Run Code Online (Sandbox Code Playgroud)

当我使用管道翻译html时,它可以正常工作.

loader typescript ngx-translate angular

11
推荐指数
2
解决办法
1万
查看次数

是否可以使用webpack加载器从文件生成Typescript接口?

我正在尝试创建一个webpack加载器,它将包含API数据结构描述的文件转换为一组TypeScript接口.

在我的具体情况中,文件是JSON,但这应该是最终无关紧要的 - 文件只是描述Web应用程序后端和前端之间交互的共享数据源.在下面的MCVE中,您可以看到JSON文件包含一个空对象,以强调文件的类型和内容与问题无关.

我当前的尝试报告了两个错误(我假设第二个错误是由第一个引起的):

[at-loader]: Child process failed to process the request:  Error: Could not find file: '/private/tmp/ts-loader/example.api'.
Run Code Online (Sandbox Code Playgroud)
ERROR in ./example.api
Module build failed: Error: Final loader didn't return a Buffer or String
Run Code Online (Sandbox Code Playgroud)

如何使用webpack加载器生成TypeScript代码?

的package.json

{
  "name": "so-example",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "scripts": {
    "build": "webpack"
  },
  "dependencies": {
    "awesome-typescript-loader": "^3.2.3",
    "typescript": "^2.6.1",
    "webpack": "^3.8.1"
  }
}
Run Code Online (Sandbox Code Playgroud)

webpack.config.js

const path = require('path');

module.exports = {
  entry: './index.ts',
  output: {
    filename: 'output.js',
  },
  resolveLoader: {
    alias: {
      'my-own-loader': …
Run Code Online (Sandbox Code Playgroud)

loader typescript webpack

11
推荐指数
1
解决办法
1295
查看次数

AS3:如何在事件侦听器函数中从LoaderInfo获取动态加载程序URL?

我正在加载许多图片,并且正在使用数组来执行此操作.

loader[i].load(new URLRequest(picture[i]));
Run Code Online (Sandbox Code Playgroud)

我的事件监听器功能启用如下:

loader[i].contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);   
Run Code Online (Sandbox Code Playgroud)

我的onComplete事件处理程序显示了这个:

trace(e.target); //OUTPUT: [object LoaderInfo]
Run Code Online (Sandbox Code Playgroud)

我在LoaderInfo中查找了可能识别哪个加载器启动了监听器("i"的值)的属性,这样我就可以专门用于每个加载器,如下所示:

bitmapDataArr[i] = e.target.content.bitmapData;
bmVisArr[i] = new Bitmap(bitmapDataArr[i]);
Run Code Online (Sandbox Code Playgroud)

但无法确定哪个"i"启动了侦听器的特定实例.

有任何想法吗?我试着给LoaderInfo一个名字无济于事.我仍然无法提取讨厌的小识别号码.

EDIT显示加载器和onComplete函数的循环:

for (i = 0; i < 10; i++) {
    loader[i] = new Loader();
    loader[i].contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete, false, 0, true);           
    loader[i].load(new URLRequest(letter[i]));
}

private function onComplete(e:Event):void {
    trace("e.target",e.target); //OUTPUT: e.target    [object LoaderInfo]
    var LI:LoaderInfo = e.target as LoaderInfo;
    var eNum:int = (????);
    bitmapDataArr[eNum] = e.target.content.bitmapData;
    bmVisArr[eNum] = new Bitmap(bitmapDataArr[eNum]);
}
Run Code Online (Sandbox Code Playgroud)

javascript arrays loader actionscript-3 loaderinfo

10
推荐指数
1
解决办法
392
查看次数