@@ -1163,13 +1163,14 @@ -(void)cmdDir:(id)sender
1163
1163
1164
1164
#pragma mark - 初始化PHP版本列表 -
1165
1165
1166
- -(NSMenu *)getPhpExtendsMenu : (NSString *) v
1166
+ -(NSMenu *)getPhpExtendsMenu : (NSString *) v extlib : ( NSMutableDictionary *) extlib
1167
1167
{
1168
+ // NSLog(@"---log %@", v);
1168
1169
NSFileManager *fm = [NSFileManager defaultManager ];
1169
1170
NSMenu *extListMenu = [[NSMenu alloc ] initWithTitle: v];
1170
1171
1171
1172
NSString *rootDir = [NSCommon getRootDir ];
1172
- NSString *extDir = [NSString stringWithFormat: @" %@ bin/reinstall/php %@ " , rootDir, v ];
1173
+ NSString *extDir = [NSString stringWithFormat: @" %@ bin/reinstall/extensions " , rootDir];
1173
1174
NSArray *extList = [fm contentsOfDirectoryAtPath: extDir error: nil ];
1174
1175
1175
1176
NSString *content = @" " ;
@@ -1211,6 +1212,18 @@ -(NSMenu*)getPhpExtendsMenu:(NSString *) v
1211
1212
}];
1212
1213
1213
1214
for (NSString *ee in __extList) {
1215
+ // 判断是否在支持的列表中 start
1216
+ if (![[extlib allKeys ] containsObject: ee]) {
1217
+ continue ;
1218
+ }
1219
+
1220
+ NSArray *lib_version = [extlib objectForKey: ee];
1221
+
1222
+ if (![lib_version containsObject: v]) {
1223
+ continue ;
1224
+ }
1225
+ // NSLog(@"ext:%@:%@:%@", v,ee,lib_version);
1226
+ // 判断是否在支持的列表中 end
1214
1227
1215
1228
NSMenu *extMenu = [[NSMenu alloc ] initWithTitle: v];
1216
1229
[extMenu addItemWithTitle: @" Install" action: @selector (phpExtInstall: ) keyEquivalent: @" " ];
@@ -1245,7 +1258,7 @@ -(void)phpExtInstall:(id)sender
1245
1258
NSMenuItem *ppMenu=[pMenu parentItem ];
1246
1259
NSMenuItem *pppMenu=[ppMenu parentItem ];
1247
1260
1248
- NSString *installSh = [NSString stringWithFormat: @" %@ bin/reinstall/php %@ /%@ /install.sh" , rootDir, pppMenu.title ,pMenu.title];
1261
+ NSString *installSh = [NSString stringWithFormat: @" %@ bin/reinstall/extensions /%@ /install.sh" , rootDir,pMenu.title];
1249
1262
1250
1263
if (![NSCommon fileIsExists: installSh]){
1251
1264
[self userCenter: [NSString stringWithFormat: @" PHP%@ -%@ 扩展install脚本不存在!" , pppMenu.title,pMenu.title]];
@@ -1279,7 +1292,7 @@ -(void)phpExtUninstall:(id)sender
1279
1292
NSMenuItem *ppMenu=[pMenu parentItem ];
1280
1293
NSMenuItem *pppMenu=[ppMenu parentItem ];
1281
1294
1282
- NSString *installSh = [NSString stringWithFormat: @" %@ bin/reinstall/php %@ /%@ /uninstall.sh" , rootDir, pppMenu.title ,pMenu.title];
1295
+ NSString *installSh = [NSString stringWithFormat: @" %@ bin/reinstall/extensions /%@ /uninstall.sh" , rootDir,pMenu.title];
1283
1296
1284
1297
if (![NSCommon fileIsExists: installSh]){
1285
1298
[self userCenter: [NSString stringWithFormat: @" PHP%@ -%@ 扩展uninstall脚本不存在!" , pppMenu.title,pMenu.title]];
@@ -1311,7 +1324,7 @@ -(void)phpExtReload:(id)sender
1311
1324
NSMenuItem *ppMenu=[pMenu parentItem ];
1312
1325
NSMenuItem *pppMenu=[ppMenu parentItem ];
1313
1326
1314
- NSString *reloadSh = [NSString stringWithFormat: @" %@ bin/reinstall/php %@ /%@ /reload.sh" , rootDir, pppMenu.title ,pMenu.title];
1327
+ NSString *reloadSh = [NSString stringWithFormat: @" %@ bin/reinstall/extensions /%@ /reload.sh" , rootDir,pMenu.title];
1315
1328
1316
1329
if (![NSCommon fileIsExists: reloadSh]){
1317
1330
[self userCenter: [NSString stringWithFormat: @" PHP%@ -%@ 扩展reload脚本不存在!" , pppMenu.title,pMenu.title]];
@@ -1338,11 +1351,11 @@ -(void)phpExtDir:(id)sender
1338
1351
1339
1352
NSMenuItem *cMenu = (NSMenuItem *)sender;
1340
1353
NSMenuItem *pMenu=[cMenu parentItem ];
1341
- NSMenuItem *ppMenu=[pMenu parentItem ];
1342
- NSMenuItem *pppMenu=[ppMenu parentItem ];
1354
+ // NSMenuItem *ppMenu=[pMenu parentItem];
1355
+ // NSMenuItem *pppMenu=[ppMenu parentItem];
1343
1356
1344
1357
[NSCommon delayedRun: 0 callback: ^{
1345
- NSString *str = [NSString stringWithFormat: @" %@ bin/reinstall/php %@ /%@ " ,rootDir,pppMenu.title ,pMenu.title];
1358
+ NSString *str = [NSString stringWithFormat: @" %@ bin/reinstall/extensions /%@ " ,rootDir,pMenu.title];
1346
1359
BOOL isDir = YES ;
1347
1360
if ([fm fileExistsAtPath: str isDirectory: &isDir]){
1348
1361
[[NSTask launchedTaskWithLaunchPath: @" /usr/bin/open" arguments: [NSArray arrayWithObjects: str, nil ]] waitUntilExit ];
@@ -1460,7 +1473,7 @@ -(BOOL)findEnv:(NSString *)title{
1460
1473
return NO ;
1461
1474
}
1462
1475
1463
- -(NSMenu *)getPhpVerMenu : (NSString *)title
1476
+ -(NSMenu *)getPhpVerMenu : (NSString *)title extlib : ( NSMutableDictionary *) extlib
1464
1477
{
1465
1478
NSMenu *vMenu = [[NSMenu alloc ] initWithTitle: title];
1466
1479
@@ -1477,7 +1490,8 @@ -(NSMenu*)getPhpVerMenu:(NSString *)title
1477
1490
[vMenu addItemWithTitle: @" Dir" action: @selector (phpDir: ) keyEquivalent: @" " ];
1478
1491
[vMenu addItemWithTitle: @" Extends Dir" action: @selector (phpExtendsDir: ) keyEquivalent: @" " ];
1479
1492
1480
- NSMenu *extMenu = [self getPhpExtendsMenu: title];
1493
+ // NSLog(@"init %@", @"ddd");
1494
+ NSMenu *extMenu = [self getPhpExtendsMenu: title extlib: extlib];
1481
1495
NSMenuItem *extItem = [[NSMenuItem alloc ] initWithTitle: @" Extends"
1482
1496
action: NULL
1483
1497
keyEquivalent: @" " ];
@@ -1486,6 +1500,50 @@ -(NSMenu*)getPhpVerMenu:(NSString *)title
1486
1500
return vMenu;
1487
1501
}
1488
1502
1503
+ #pragma mark - 读取PHP依赖关系 -
1504
+ -(NSMutableDictionary *)readPhpExtLib {
1505
+ NSString *rootDir = [NSCommon getRootDir ];
1506
+ NSString *extensionsLibFile = [NSString stringWithFormat: @" %@ bin/reinstall/extensions/lib.md" , rootDir];
1507
+ NSMutableDictionary *result = [[NSMutableDictionary alloc ] init ];
1508
+ NSFileManager *fm = [NSFileManager defaultManager ];
1509
+
1510
+ if (![fm fileExistsAtPath: extensionsLibFile]){
1511
+ return result;
1512
+ }
1513
+
1514
+ NSString *content = [NSString stringWithContentsOfFile: extensionsLibFile encoding: NSUTF8StringEncoding error: nil ];
1515
+ content = [content stringByTrimmingCharactersInSet:
1516
+ [NSCharacterSet whitespaceAndNewlineCharacterSet ]];
1517
+ NSArray *list = [content componentsSeparatedByString: @" \n " ];
1518
+
1519
+
1520
+ for (int i=0 ; i<list.count ; i++) {
1521
+ NSString *dep = [list[i] stringByTrimmingCharactersInSet:
1522
+ [NSCharacterSet whitespaceAndNewlineCharacterSet ]];
1523
+
1524
+ NSArray *dep_list = [dep componentsSeparatedByString: @" |" ];
1525
+ if (dep_list.count < 2 ){
1526
+ continue ;
1527
+ }
1528
+ NSMutableArray *dep_version = [[NSMutableArray alloc ] init ];
1529
+
1530
+ NSString *libname = [dep_list[0 ] stringByTrimmingCharactersInSet:
1531
+ [NSCharacterSet whitespaceAndNewlineCharacterSet ]];
1532
+
1533
+ NSString *version =[dep_list[1 ] stringByTrimmingCharactersInSet:
1534
+ [NSCharacterSet whitespaceAndNewlineCharacterSet ]];
1535
+ NSArray *dep_version_t = [version componentsSeparatedByString: @" ," ];
1536
+
1537
+ for (int i=0 ; i<dep_version_t .count ; i++) {
1538
+ NSString *version_t = [dep_version_t [i] stringByTrimmingCharactersInSet:
1539
+ [NSCharacterSet whitespaceAndNewlineCharacterSet ]];
1540
+ [dep_version addObject: version_t ];
1541
+ }
1542
+ [result setObject: dep_version forKey: libname];
1543
+ }
1544
+ return result;
1545
+ }
1546
+
1489
1547
-(void )initPhpList
1490
1548
{
1491
1549
[phpVer.submenu removeAllItems ];
@@ -1522,8 +1580,10 @@ -(void)initPhpList
1522
1580
return NO ;
1523
1581
}];
1524
1582
1583
+
1584
+ NSMutableDictionary *extlib = [self readPhpExtLib ];
1525
1585
for (NSString *f in _phpVlist) {
1526
- NSMenu *vMenu = [self getPhpVerMenu: f];
1586
+ NSMenu *vMenu = [self getPhpVerMenu: f extlib: extlib ];
1527
1587
1528
1588
NSMenuItem *vItem = [[NSMenuItem alloc ] initWithTitle: f
1529
1589
action: @selector (phpStatusSet: )
0 commit comments